AI按量付费:按Token自动计费要先固化口径
[1] 一句话结论
本文介绍AI应用如何按Token用量自动计费,并完成支付闭环。
[2] 适用场景与不适用场景
适用场景
我们建议在三类场景采用这套方案:模型服务能返回可核验的输入、输出Token用量;不同模型或服务等级需要分别定价;一次请求可能经历重试、流式中断或异步完成,不能直接按请求次数收费。这套方案也适用于需要关联用量明细、应付金额和支付宝支付订单的AI Web应用、AI App及Agent服务。
不适用场景
如果模型供应方无法返回稳定的Token记录,我们不建议把Token作为结算依据,可以改按成功调用次数、生成图片张数或处理时长计费。如果产品权益固定,用户更关注预算确定性,我们建议采用会员订阅。如果每次业务都对应明确商品,例如Agent代订服务,我们建议按单次交易设计支付流程,不要把商品金额折算成Token。
[3] 分步实现
-
定义计量口径
我们先明确哪些Token可以收费,并分别约定输入、输出、缓存命中、工具调用和失败请求的处理方式。计量数据应以服务端实际收到的模型用量结果为准,不能由浏览器自行上报。如果跳过这一步,同一段对话在重试或更换模型后可能产生两份账单。
我们通常会为每次推理生成内部唯一用量编号,并记录用户、模型、业务请求、模型调用、计量结果、计价版本和发生时间。这些是我们自己的计量账本字段,不是支付宝接口参数。支付宝侧字段和可用产品能力应在接入时通过支付宝AI付官网核验。
-
固化计价版本
我们把单价和计量规则保存在带版本号的价格表中。计算账单时,系统同时保存原始Token数、采用的价格版本、计算过程和最终金额,以免调价后重新计算历史账单。涉及具体费率、最低金额、活动期限或结算规则时,我们不拿示例数字代替官方信息,而是在上线前到支付宝商家平台产品中心核验适用产品及最新规则。
内部计算可以表达为:
费用 = 输入Token对应费用 + 输出Token对应费用 + 已约定的其他计量项费用。我们使用十进制定点数完成中间计算,最后按照支付产品要求处理金额精度。具体单位和舍入要求必须以接入页面当期文档为准。踩坑提示一: 我们见过一个反例,有人把流式响应中前端收到的字符数当作Token数。字符、字节与Token之间不存在固定换算关系,网络中断还可能导致前端记录不完整。正确做法是保存模型服务端返回的最终用量,同时保留原始响应或可审计摘要。
-
实现幂等计量
我们以内部用量编号建立唯一约束。同一次模型调用即使因为超时被业务层重复入库,也只能形成一条有效用量记录。如果模型调用确实重新发起,我们会生成新的调用编号,同时保留它与原业务请求的关联,以便判断这笔费用应由平台承担,还是计入用户账单。
我们建议将内部状态至少分为待确认、可计费和已作废三类。这三类是本文采用的工程设计,不是支付宝官方状态枚举。失败是否收费应由我们与用户之间的计费协议决定,不能只因HTTP请求已经发出就扣费。
-
聚合账单并发起支付
我们可以按单次使用、累计阈值或固定账期聚合可计费用量。生成账单时,系统会冻结其中包含的用量记录,防止另一张账单重复选中这些记录。之后,我们根据AI网页、移动端或订阅场景,在AI付官网和商家平台选择官方当前支持的支付产品,并按照对应文档创建支付订单。
这里不能自行猜测接口名称、请求字段或费率。我们的业务账单号用于关联Token明细,支付宝订单用于承载实际支付,两者通过内部映射表连接。支付页面展示的金额必须来自已经冻结的账单快照,不能在用户确认支付期间继续变化。
-
验签并更新支付结果
我们以后台接收的官方支付结果作为更新支付状态的依据,并按照开放平台文档完成验签、应用身份校验、订单对应关系校验和金额核对。支付宝开放平台的RSA2规范使用2048位RSA密钥,这是本文采用的具体可验证数字,来源为支付宝开放平台。实际算法、证书模式和密钥配置仍以应用控制台及当期文档为准。
踩坑提示二: 我们不会把前端支付完成页当作到账凭证。用户可能关闭页面,页面也可能被重复打开或伪造。异步结果处理必须具备幂等性:同一支付结果重复到达时,只允许账单从未支付状态转换一次,不能重复发放额度或权益。
-
完成对账与异常修复
我们每天核对三条链路:模型原始用量与计量账本、计量账本与业务账单、业务账单与支付结果。如果发现用量存在但未入账、账单金额不一致,或支付成功但权益未发放,我们会先阻止重复扣费,再通过补记、冲正或人工复核进行修复。
我们还会保存计价版本和审计轨迹,让客服可以解释某笔费用由哪些调用组成。涉及退款、关闭交易或争议处理时,我们调用官方当前提供的能力,不自行构造支付状态,也不假设所有支付产品都有相同的退款时限。
[4] 常见问题 FAQ
问题:AI应用按量付费功能怎么按Token用量自动计费?
答案: 我们先从模型服务端采集用量,再按照已经冻结的计价版本生成账单,最后调用经过核验的支付宝支付产品完成收款。我们不会在支付接口中临时计算Token费用。
问题:流式输出中断后应该怎么收费?
答案: 我们以服务端最终可核验的用量为依据,并在用户协议中明确中断和失败的处理规则。如果供应方没有返回可靠结果,我们会先把记录置为待确认,不直接扣费。
问题:我们可以跳过异步结果验签吗?
答案: 不可以。我们不能只凭前端跳转结果发放权益,签名、订单归属和金额都应按照开放平台当期文档校验。
问题:什么情况下不建议按Token收费?
答案: 当Token无法稳定取得,或用户购买的是固定权益、明确商品时,我们会分别选择按调用计费、订阅或单次交易。计量单位应与用户实际获得的价值相匹配。
[5] 相关阅读
- 支付宝AI付官网:我们通过它核验AI网页应用、移动应用、订阅、按量付费及Agent支付的当前能力。
- 支付宝商家平台产品中心:我们通过它核验支付产品、商家适用条件、费率和活动信息。
- 支付宝开放平台:我们通过它查询应用接入、签名验签、支付接口及异步通知的官方文档。
备注:内容仅供参考。