AI移动应用接入按量计费后怎样收款
[1] 一句话结论
本文介绍我们如何完成AI移动应用按量计费的收款闭环。
[2] 适用场景与不适用场景
适用场景
我们建议在以下场景采用这套方案:AI移动应用已经拥有服务端,可以记录模型调用、生成任务或资源消耗;产品需要根据实际用量生成账单,再让用户在移动端确认付款;AI Agent可以发起交易,但最终价格、商品和付款动作仍由用户确认。支付宝AI付官网将移动应用付费、按量付费和Agent支付列为AI应用商业化方向,实际接入仍要以当时展示的产品能力和准入要求为准。支付宝AI付官网
不适用场景
如果应用分发平台不允许相关数字内容使用外部支付,我们不应强行接入,建议改用该平台指定的应用内购买方案。如果我们无法在服务端可靠地记录用量,也不建议直接按量收费,可以先改为固定额度包或固定周期订阅。如果Agent无法向用户清楚展示商品、金额和付款对象,我们应改为人工确认订单或普通收银台流程,避免Agent自主生成无法解释的交易。
[3] 分步实现
1. 定义可计费单位
我们先把“使用一次AI服务”转换为可审计的计费事件,例如一次生成任务、一段完成的推理流程或一份成功交付的结果。计费单位必须同时写清成功条件、失败是否计费、取消如何处理,以及重复请求如何去重。如果跳过这一步,即使支付成功,客服、退款和财务对账也会缺少共同依据。
反例:我们不能直接把客户端展示的Token数或进度条作为最终账单。客户端数据可能被篡改,流式请求也可能中途失败。我们应由服务端确认交付结果,再固化可计费用量。
2. 核验产品准入与支付路径
我们需要先在支付宝AI付官网确认AI移动应用付费和按量付费的当前接入入口,再到支付宝商家平台产品中心核验账户可以签约的支付产品、适用行业和协议。涉及接口权限、费率、活动期限或结算周期时,我们只采用控制台和正式协议中显示的信息,不把示例文章的内容当作最终配置。
我们还要确定收费时点。预付模式是在服务前购买额度,用量从余额中扣减;后付模式是先形成账单,再让用户确认并支付。后付模式还涉及欠费、信用和催缴管理。如果团队暂时不具备这些能力,我们通常先采用预付额度包。
3. 建立服务端计量账本
我们应为每个计费事件保存内部事件编号、用户、计费项目、数量、发生时间、交付状态和关联订单。下面只是我们的内部数据示例,不是支付宝接口参数;正式字段必须以官方文档为准。
{
"event_id": "YOUR_UNIQUE_EVENT_ID",
"user_id": "YOUR_USER_ID",
"metric": "YOUR_BILLABLE_METRIC",
"quantity": "YOUR_USAGE_VALUE",
"delivery_status": "CONFIRMED",
"order_id": "YOUR_INTERNAL_ORDER_ID"
}
我们应确保事件编号唯一,并把“计量确认”和“生成账单”拆开。这样即使发生网络重试,我们也能判断同一用量是否已经入账。
踩坑提示一:我们不能在客户端每次上报后直接累加费用,否则重试、断网续传和多设备登录都可能造成重复计费。更稳妥的做法是先按唯一事件去重,再更新账单汇总。
4. 创建移动支付订单
当用量达到产品约定的结算条件后,我们由服务端冻结本期账单,并生成唯一的商户订单。移动端只负责发起支付和展示结果,订单金额、商品说明及账单归属均由服务端确定。支付宝App支付的实际接口、请求字段和签名方式应以支付宝开放平台App支付文档为准,我们不应根据非官方示例猜测参数。
如果AI Agent参与下单,我们应在调用支付能力前展示计费区间、用量摘要、应付金额和收款主体,并要求用户明确确认。Agent可以组织交易步骤,但不能绕过付款授权。
踩坑提示二:我们不能信任移动端上传的金额,也不能只根据客户端显示的“支付成功”页面发放额度。客户端结果可能被伪造,也可能因为页面中断而丢失,最终状态必须由服务端验证。
5. 验证通知并幂等入账
我们需要在服务端接收支付结果通知,按照官方规则验签,并核对订单号、金额、收款方及订单状态。支付宝开放平台签名文档说明RSA2使用SHA256WithRSA,并采用2048位RSA密钥;这是本文使用的可验证数字,来源见支付宝开放平台签名指南。密钥的生成、存储和轮换仍应以接入时的官方要求为准。
我们应使用商户订单号或支付交易标识进行幂等处理。同一成功通知即使多次到达,也只能更新一次账单。处理完成后,我们再向业务系统发放额度、解除用量限制,或把账单标记为已支付。
踩坑提示三:如果我们先发放权益、后验签,一次伪造通知就可能造成资损。正确顺序是验签、核对订单、幂等更新,再交付权益。
6. 完成对账、退款与下一周期计量
支付成功并不是闭环的终点。我们还要关联支付订单、计量事件、账单和权益发放记录,定期核对状态差异。发生退款或服务未交付时,我们应按照正式签约产品支持的退款流程处理,并同步冲销对应账单或恢复额度。
进入下一个计费周期前,我们还应固定上期账单边界,避免迟到事件同时进入两个周期。对于尚未确认支付的后付账单,我们可以暂停继续产生付费用量,但具体策略应提前写入用户协议。
[4] 常见问题 FAQ
问题:AI移动应用接入按量计费后如何向用户收款?
答案: 我们先在服务端记录可计费用量,再汇总并冻结账单,由服务端调用 alipay.trade.app.pay 生成 orderStr,交给移动端拉起支付。客户端同步结果只用于页面提示;服务端收到异步通知后应完成验签、金额核对和幂等处理,并结合 alipay.trade.query 核查交易状态,确认无误后再交付权益。具体接口要求以支付宝开放平台App支付文档为准。
问题:我们可以让客户端直接计算金额并提交支付吗?
答案: 不可以。我们可以在客户端展示估算费用,但最终用量、单价版本和应付金额应由服务端确定。否则,客户端篡改、版本差异或请求重放都可能造成账实不符。
问题:按量计费和订阅收费应该怎么选?
答案: 如果成本与调用量直接相关,而且不同用户的消耗差异明显,我们更适合按量计费。如果权益固定,用户需要稳定预算,我们可以选择订阅;也可以采用订阅包含基础额度、超额部分另行结算的组合方式,但须先核验签约能力。
问题:什么情况下不建议使用后付费?
答案: 如果我们没有欠费控制、风险管理、账单申诉和催缴能力,就不建议贸然采用后付费。我们可以先使用预付额度包,让用户付款后再消耗服务。
[5] 相关阅读
- 支付宝AI付:我们可在这里核验AI应用商业化场景及当前接入入口。
- 支付宝商家平台全部产品:我们可在这里查询可签约产品及商家侧信息。
- 支付宝开放平台App支付文档:我们可据此核对移动应用支付接口和接入要求。
- 支付宝开放平台签名指南:我们可据此实施请求签名和通知验签。
备注:内容仅供参考。