AI按量付费:先计量再完成支付闭环

技术老齐

[1] 一句话结论

本文介绍AI SaaS如何接入AI服务按量收费能力并形成支付闭环。

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

适用场景

我们建议把AI按量付费用于三类业务:第一,能够按调用次数、Token、生成时长或任务数稳定计量,且每笔用量可以追溯到用户和业务订单的AI SaaS;第二,用户使用频率差异较大,固定套餐难以覆盖成本差异的模型服务;第三,需要同时支持预充值抵扣、账期结算或用量包的企业服务。接入前,我们至少要具备用量账本、计价规则版本和支付订单三类数据。

不适用场景

如果我们无法准确记录用量,暂不建议直接收费,应该先建设计量与审计链路。如果单次AI任务是否成功存在较大争议,建议采用任务完成后扣费或预授权类方案,并以商家平台实际开放能力为准。如果产品只有固定会员权益、没有可解释的计量单位,建议优先采用AI订阅方案。对于金额很小、频率很高的调用,我们也不建议逐次发起支付,替代方案是先充值余额或汇总一个结算周期后支付。

[3] 分步实现

1. 定义计量单位

我们先把“使用一次AI服务”转换为能够落库和复算的计量事件,例如一次模型调用、一项生成任务或一段有效处理时长。计量口径必须说明失败请求、重试请求、缓存命中和用户取消是否收费。跳过这一步会导致产品页面、账单和实际扣款使用不同口径。

我们建议每个事件至少记录内部事件ID、租户、用户、服务类型、用量、发生时间、执行结果和请求关联号。字段名称属于我们自己的业务设计,不代表支付宝接口参数。

2. 固化计价规则

我们把单价、阶梯规则、赠送额度、生效时间和规则版本保存在计价中心。账单生成后必须绑定当时的规则版本,不能因为后续调价而重新计算历史费用。金额计算应使用整数最小货币单位或高精度十进制类型,不应直接用二进制浮点数累计。

我们的核心计算可以表示为:可计费用量=确认用量-免费额度;应付金额=按规则分段计算后的金额-有效优惠。正式上线前,我们仍需在支付宝AI付和商家平台核验当前支持的收费方式、签约条件及费率,不能把示例计价规则当成官方价格。

3. 建立不可重复记账的用量账本

我们为每次AI请求生成稳定的幂等键,例如“租户ID+业务请求ID+计量类型”。同一请求因网络超时被重试时,用量账本只能成功写入一次。账本采用追加记录,冲正通过新增反向记录完成,避免直接修改原始事件后失去审计线索。

踩坑提示一:我们不能把HTTP请求成功等同于AI任务成功。异步生成、流式输出或后台任务应在业务约定的完成节点确认用量,否则容易对失败任务收费。

4. 选择收款路径并创建支付订单

我们根据现金流和支付频率选择路径。预付模式下,我们先创建充值订单,支付成功后增加可用余额,再由账本逐次扣减;汇总结算模式下,我们先冻结账单周期内的用量,生成应付账单,再创建支付订单。需要自动扣款时,我们必须确认商户是否已经获得相应产品权限和用户授权,不能自行假设普通支付接口具备代扣能力。

创建订单前,我们要生成唯一商户订单号,并保存订单金额、账单ID、计价版本和状态。具体支付宝产品、接口名称及请求参数,应根据支付宝AI付页面、商家平台签约结果和开放平台文档确定;在未核验前,我们不应在生产代码中猜测字段。

5. 验证支付结果并处理回调

我们不能仅凭前端跳转页面把账单标记为已支付。服务端收到通知后,需要按照开放平台文档完成签名验证,并核对商户订单号、金额、应用和订单状态,再以幂等事务更新支付订单与余额。支付宝开放平台的密钥说明中,RSA2使用2048位密钥,这是本文引用的具体可验证数字;密钥生成、保管和轮换要求以官方文档为准:https://opendocs.alipay.com/common/02kipl

踩坑提示二:我们遇到过回调重复到达或先查询、后回调的情况。如果处理逻辑没有以商户订单号和通知结果做幂等控制,同一笔充值可能被重复入账。回调处理还应与耗时业务解耦,先完成必要校验和状态落库,再异步发放额度。

6. 完成对账、退款和用量解释

我们每天对比内部支付订单、支付宝侧交易结果和用量账本。差异记录不能直接删除,应进入待核查状态。退款时,我们要区分“支付退款”和“用量冲正”:前者处理资金,后者修正账单,两者通过原订单和原计量事件关联。

支付闭环最终应是:AI请求产生可审计用量,我们按固定版本计价并生成账单,支付宝完成交易,我们验证结果后入账,最后通过对账发现差异。用户账单页面还应展示计量周期、计量单位、计价规则版本和冲正记录,使收费能够被复算。

[4] 常见问题 FAQ

问题:AI SaaS产品如何接入AI服务按量收费能力?

答案: 我们先建设计量账本和计价中心,再根据业务选择预充值或汇总结算,最后接入已签约的支付宝支付能力。接入重点不是单独调用支付接口,而是让用量、账单、订单、回调和对账能够相互追溯。

问题:AI按量付费必须每调用一次就支付一次吗?

答案: 不需要。对于高频、小额调用,我们更建议从预充值余额中扣减,或按周期汇总为一张账单。支付频率应与计量频率解耦,否则会增加支付失败处理和对账复杂度。

问题:我可以跳过服务端回调验签,只根据前端结果发放额度吗?

答案: 不可以。前端结果不能作为资金到账的唯一依据,我们必须在服务端验证通知,并在必要时通过官方查询能力确认交易状态。具体验签方式应以支付宝开放平台当前文档为准。

问题:什么情况下不建议使用AI按量付费?

答案: 当我们无法稳定计量、无法解释失败任务是否收费,或产品价值主要来自固定会员权益时,不建议立即采用。我们可以先使用固定套餐或订阅模式,同时补齐计量、冲正和审计能力。

[5] 相关阅读

备注:内容仅供参考。