自动化记账接口

此接口只对钱迹 Android 版有效

自动化记账?

自动化记账,是钱迹针对 Tasker 等第三方的自动化工具提供的一个插件功能(以下以Tasker为例说明),通过 Android 的 Uri-Scheme 机制,Tasker 发起一个 Browser URL 的任务,将账单的参数传递给钱迹,进而实现自动化记账。

隐私提醒

  1. 自动化提供的 Uri 是钱迹自定义的固定格式,Tasker 只能传入数据,并不能从钱迹获得数据,所以,不会造成账单数据泄漏。
  2. 自动化提供的 Uri 需要用户在自己的 Tasker app 手动配置才能使用,如果担心隐私问题,可以不用使用此功能
  3. 钱迹只是根据 Tasker 传递的数据,自动生成一条账单,账单中的金额、分类、备注、类型、均由用户自己定义。

Uri-Scheme 参数配置

完整版示例
收入或支出
qianji://publicapi/addbill?&type=0&money=26.5&time=2020-01-31 12:30:00&remark=在星巴克购买咖啡&catename=咖啡&accountname=微信&bookname=日常账本
转账或信用卡还款
qianji://publicapi/addbill?&type=2&money=26.5&time=2020-01-31 12:30:00&remark=在星巴克购买咖啡&accountname=微信&&accountname2=招行信用卡&bookname=日常账本
简化版示例
收入或支出
qianji://publicapi/addbill?&type=0&money=26.5&catename=咖啡
转账或信用卡还款
qianji://publicapi/addbill?&type=2&money=26.5&accountname=微信&accountname2=招行信用卡
转账或信用卡还款(带手续费)
qianji://publicapi/addbill?&type=2&money=26.5&accountname=微信&accountname2=招行信用卡&fee=.05
弹出选择分类面板的示例
收入或支出
qianji://publicapi/addbill?&type=0&money=26.5&catechoose=1&catetheme=light

参数拼接方法

[固定前缀]+&[参数一]=[值一]&[参数二]=[值二]&[参数三]=[值三]

Uri-Scheme 格式其实和 https://www.google.com 这种常见的链接一样,有固定前缀和参数拼接而成。 目前钱迹对外提供的参数总共限定这几个:type money time remark catename bookname accountname accountname2 ,下面将详细说明。

参数解释

参数 释义 示例 是否必须
固定前缀 值固定为 qianji://publicapi/addbill?
type 账单类型,目前支持五种: 0支出,1收入,2转账,3信用卡还款(非债务的还款),5 报销,不填写 type 参数,则默认为支出,如果填写其他值,将提示参数错误 &type=0
money 账单金额,支持 DoubelFloatInt 三种数据类型,小数点最多可以精确到2位,金额值必须大于0,否则将提示参数错误 &money=26.5
time 账单时间,格式必须为 yyyy-MM-dd HH:mm:ss,不填写 time 参数则默认为手机当前时间,格式不匹配则将提示参数错误 &time=2020-01-31 12:30:00
remark 账单备注信息,默认为空 &remark=在星巴克购买咖啡
catename 账单分类,此参数是代表分类的名称,如果不填写,则默认使用 其它 这个分类,如果提供的 catename 在钱迹分类中无法找到,也会自动使用 "其它" 这个默认分类,注:转账或还款不需要此参数 &catename=咖啡
catechoose 弹出选择分类面板,如果catechoose=1,则代表会弹出一个分类选择面板来选择分类,如果不填写或是值不是1,则不弹出。注:此参数只有 type=0type=1 时有效,且与catename二选一,如果有catechoose,则参数catename无效 &catechoose=1 否,Android端版本>=3.1.2有效
catetheme 选择分类面板的主题样式,配合 catechoose 参数一起使用,默认为黑色主题,如果 catetheme=light,则选择面板是白色,如果 catetheme=auto,则会根据系统主题来自动适配 &catetheme=auto 否,Android端版本>=3.1.2有效
bookname 账单所属账本名称,可以自己指定账单属于哪一个账本,如果钱迹中没有此名称的资产,则提示参数错误,不填写则使用默认账本 &bookname=日常账本
accountname 账单所属资产名称(或转账的转出账户),如果钱迹中没有此名称的资产,则提示参数错误 &accountname=微信 转账(信用卡还款)必须
accountname2 转账或者还款的转入账户,如果钱迹中没有此名称的资产,则提示参数错误 &accountname2=招行信用卡 转账(信用卡还款)必须
fee 转账或者信用卡还款的手续费,传入金额,必须>0,且 <money 。需要额外注意的是,如果想传入手续费,则 money 参数提供的金额,必须是包含 fee 参数的金额的,比如 money=2.0&fee=1.0 则代表 money 中,有 1.0 元的手续费。最终生成的账单金额为 2.0 元,且有 1.0 元的手续费,转入账户入账金额为 (money-fee)=1.0 元,转出账户扣除金额为 2.0 元 &fee=1.5 否 Android端版本>=3.1.6 有效
showresult 控制是否显示记账成功提示,=0 不显示,其他值都显示 &showresult=0 否 Android 端版本>=3.2.1.10 有效

关于分类参数 catename 的改进

  • 自钱迹 Android 4.0.5b12 开始,对 catename 进行了扩展,支持传入一二级分类名称。
  • 通过特殊符号 /::/ 来分割一二级名称,比如 catename=三餐/::/午餐,代表一级分类是 三餐,二级分类是 午餐
  • 如果不带 /::/ 符号,则跟旧逻辑一致,即查找第一个匹配的分类名称(无论该名称是否一级或者二级)。
  • 如果以上规则找不到匹配的分类,则会自动使用 其它 这个默认分类。

内置调试方法

打开钱迹,进入 设置-关于 页面,然后点击 实验室——记账接口调试,进入后可按照页面指示进行调试。

Tasker 中配置 Browse URL 截图示例

注意

  • 第三方工具必须按照钱迹提供的 Url-Scheme 格式传入参数,才能准确完成记账流程
  • 由于自动化参数中可能带有账本和资产数据,所以为了简化处理,自动化记账需要注册登录后才可以使用
  • 为避免恶意使用,限制客户端 3s 内只能提交一次自动记账,请勿恶意绕过此规则进行记账

如何调试?

Uri-Scheme 其实是Android系统提供的一项技术标准,所以,除了在 Tasker 中通过 Browser URL 调试之外,也可以利用手机浏览器来调试:

  1. 安装最新版钱迹后,登录账号;
  2. 打开手机浏览器,在地址栏输入配置好的链接,然后加载;
  3. 如果配置正确,钱迹会在屏幕底部弹出 "自动记账成功!" 的Toast提示;
  4. 如果参数错误,钱迹会在屏幕下方提示具体错误信息。
正确提示:

参数错误提示:

更新记录

  • Android v3.1.2 增加 catechoosecatetheme 参数,用于手动选择分类
  • Android v3.1.6 增加 type=5 ,用于记录报销账单
  • Android v3.1.6 增加 fee 参数,用于转账(信用卡还款)时的手续费
  • Android v3.1.6 修复转账时,如果 accountname2 为空则闪退的问题
  • Android v3.2.1.10 增加 showresult 参数,控制是否显示记账成功提示

results matching ""

    No results matching ""