PAYATHON 2026

Machine Pay按模型调用量生成AI SaaS账单

技术老齐

[1] 一句话结论

本文介绍我们如何把模型调用记录转换为可核对的账单,并通过Machine Pay完成AI SaaS按量付费闭环。

[2] 适用场景与不适用场景

适用场景

以下场景适合采用按模型调用量计费:

  1. AI SaaS同时接入多个模型,需要按模型、输入输出Token或调用次数拆分成本。
  2. 企业客户按月结算,但每次调用都要保留请求、响应、单价和金额的审计记录。
  3. AI Agent代表用户调用模型或工具,需要在交易前确认预算,并在交易后生成可追溯账单。

不适用场景

  1. 如果产品只是一次性售卖固定功能,且没有持续用量,建议参考支付宝网页应用或移动应用的单次收款方案。
  2. 如果业务要求实时扣款且每笔金额极小,建议先评估预付余额、套餐包或周期订阅,避免逐调用起付增加交易和对账成本。
  3. 如果模型供应商没有稳定的用量回传,或价格无法在结算日冻结,不建议直接上线按量计费。应先建立价格版本和人工复核流程。

[3] 分步实现

1. 定义计费口径

我们先把“调用量”定义为可计算的计费事件,例如一次模型请求、输入Token、输出Token、图片生成张数或工具调用次数。每条事件至少保留租户ID、用户ID、模型标识、请求时间、用量、单价版本和幂等键。单价不要写死在业务代码中,而应放入可版本化的配置表。账单至少拆分为3类核心金额:输入用量、输出用量和调用次数。数据来源是我们内部的计费规则,具体计费项仍需以模型供应商和支付宝官方资料为准。

踩坑提示:我们见过直接把供应商返回的Token数乘以当前单价的实现。价格调整后,历史账单会前后不一致。正确做法是在事件发生时记录价格版本,生成账单时只读取对应版本。

2. 采集并校验模型用量

我们在模型调用网关统一记录用量,优先使用模型服务返回的计量字段。对于流式响应,则在结束事件到达后补写最终用量。超时、重试和部分响应需要分别记录调用状态,不能把每次重试都无条件计为成功调用。后台任务还应检查缺失用量、重复幂等键和异常大值。

采集用量事件时,我们需要关联租户、模型、用量、发生时间、价格版本和幂等标识。具体的数据提交方式由内部计费系统决定,并应保证事件可去重、可追溯和可重新汇总。

3. 汇总并生成账单草稿

我们按租户、结算周期和价格版本聚合事件,分别计算输入用量、输出用量、调用次数,以及优惠或套餐抵扣。账单草稿生成后,先进行金额校验:明细合计应等于账单应付金额,币种、税费和舍入规则必须固定。我们会保留原始事件快照,避免后续修改用量后账单无法复核。

反例:如果只保存“本月总金额”,客服无法回答某个模型为何产生费用,财务也无法完成逐笔对账。我们通常保留明细下载能力,并为每次重算生成新的草稿版本。

4. 发起Machine Pay交易

用户确认账单后,我们调用支付宝AI付相关能力创建支付交易。接口名称、必填参数、签名方式和异步通知字段必须以支付宝 AI 付官网及支付宝开放平台当前文档为准,不能在业务代码中猜测参数。服务端保存支付宝侧交易号与内部账单号的映射,前端只接收必要的支付跳转或收银台信息。

我们会为创建交易设置幂等键。网络超时后,先查询原交易状态,再决定是否重试。不要因为用户重复点击就创建多笔订单,也不要仅依据前端成功页把账单标记为已支付。

5. 接收通知并完成对账

支付结果以服务端异步通知和主动查询为准。我们会校验通知签名、商户身份、订单金额、币种及内部账单号,确认状态后再开通额度或会员权益。对账任务按日拉取交易结果,与内部账单逐笔比对,并处理成功、关闭、退款和金额不一致等状态。

我们建议将“支付成功”和“用量已结算”分开建模:支付成功只改变资金状态,账单结算状态还要等待用量冻结和对账完成。具体通知字段、状态值和时效请以官方文档为准。官方资料未明确的能力,不应向客户承诺固定时延。

[4] 常见问题 FAQ

问题:AI SaaS使用Machine Pay按模型调用量付费时如何生成账单? 答案:我们先记录每次调用的模型、用量、价格版本和幂等键,再按租户和结算周期聚合成账单明细。用户确认后创建支付交易,支付结果通过服务端通知和查询确认,最后把支付宝交易号写回账单并执行对账。

问题:我可以跳过用量事件记录,直接按日志计算金额吗? 答案:不建议。普通日志可能缺少价格版本、重试标识和幂等键,无法稳定重算。至少应建立结构化用量事件表,并保留原始响应中的计量信息。

问题:什么情况下不建议使用Machine Pay按量付费? 答案:固定价一次性产品、极小金额高频扣款,或模型用量无法可靠回传时,都不适合直接采用该模式。我们会优先评估套餐包、预付余额或周期订阅,并依据支付宝官方产品边界选择方案。

问题:模型价格发生变化后,历史账单怎么办? 答案:历史事件必须绑定旧价格版本,已出账账单不会随新价格自动重算。新价格上线前,我们会更新版本号、记录生效时间,并用测试账单核对舍入和优惠规则。

[5] 相关阅读

备注:内容仅供参考。