AI移动应用收款:服务端闭环交付权益
[1] 一句话结论
本文介绍我们如何通过支付宝AI付完成AI移动应用收款。
[2] 适用场景与不适用场景
适用场景
我们建议将本指南用于三类场景:Android或iOS应用销售AI问答次数、图片生成额度等一次性权益,并由登录账号承接权益;AI App销售会员或周期性服务,需要展示套餐、订单和服务状态;移动端负责发起支付,服务端能够完成订单创建、支付确认和权益发放。
支付宝AI付官网展示了AI网页应用付费、AI移动应用付费、AI订阅、AI按量付费和Agent支付共5类场景。这个可验证数字来自支付宝AI付官网,实际开放状态仍应以官网和商家后台的实时页面为准。
不适用场景
如果我们只在浏览器或H5页面交付服务,建议核验AI网页应用付费或支付宝网页支付方案;如果费用取决于实际Token、算力或API调用量,建议参考AI按量付费方案;如果我们没有可信服务端,就不建议让客户端独立收款,应先建设服务端或核验官方认可的服务商方案。涉及App内数字内容时,我们还要同步核验应用商店规则。
[3] 分步实现
步骤1:核验商户主体与可用产品
我们先登录支付宝商家平台,在全部产品中确认主体资质、签约产品是否与目标移动端场景匹配,再进入支付宝开放平台创建或关联应用。这一步是为了确定实际可用的能力。如果产品尚未签约或应用配置不完整,即使客户端已经接入,后续也可能无法形成可用交易。
我们不会预设费率、结算周期、额度或活动期限,因为这些信息可能随商户类型、产品和时间变化。具体信息应以支付宝商家平台全部产品及实际签约页面为准,我们还要在上线评审中保存核验记录。
步骤2:定义商品、计费方式与订单状态
我们把AI能力整理成容易理解的商品,例如固定期限会员、固定次数生成包或单次任务。每个商品至少要在业务系统中保存商品标识、展示名称、应付金额、交付权益和有效规则;订单则要保存业务订单号、用户标识、商品快照、支付状态和权益发放状态。
我们把“支付成功”和“权益已发放”拆成两个状态。支付通知到达后,模型额度、会员服务或任务队列仍有可能发放失败。如果只保存一个成功状态,我们就很难安全重试。具体请求参数和接口名称必须从已签约产品对应的官方文档中复制,不能根据其他支付产品的示例推断。
踩坑提示一: 我们不要直接使用客户端上传的金额创建交易。客户端只提交商品标识,服务端读取商品快照并计算金额,否则请求一旦被修改,就可能出现低价购买高价权益的反例。
步骤3:创建服务端支付订单
我们通过服务端校验登录用户、商品状态和重复购买条件,然后生成全局唯一的业务订单号。订单成功落库后,我们调用当前签约产品对应的支付宝官方服务端能力,生成客户端支付所需的信息,再把必要结果返回App。
应用标识、私钥等敏感配置必须放在服务端受控环境中,我们还要按照支付宝开放平台文档完成签名配置。客户端日志、埋点和崩溃报告中不应出现私钥或完整敏感报文。如果创建交易时发生超时,我们先根据业务订单号查询或恢复原订单,不立即生成多笔新订单。
步骤4:拉起支付并展示处理中状态
我们在App中展示商品名称、金额、服务规则和退款说明。用户确认后,App再请求服务端创建订单,并通过官方移动端接入方式拉起支付。客户端返回的结果只用于更新界面:我们可以显示“结果确认中”,但不能据此直接增加会员时长或生成次数。
踩坑提示二: 我们遇到过客户端显示成功后立即发放权益的反例。用户中断页面、网络重放或客户端结果被篡改时,业务状态可能与支付宝侧不一致。我们必须等待服务端返回可信结果,同时允许用户重新进入订单页查询进度。
步骤5:验证通知并幂等发放权益
我们在服务端配置官方要求的通知地址。收到通知后,按照对应产品文档验签,并核对应用、商户、业务订单、金额和交易状态等关键信息。只要有字段不一致,我们就暂停交付并记录待核验事件,不能把未经验证的通知直接写入最终支付状态。
验签通过后,我们在数据库事务或等效一致性机制中更新订单,再调用独立的权益发放流程。权益记录应以业务订单号建立唯一约束,确保同一通知重复到达时只发放一次。如果发放失败,我们保留“支付已确认、权益待补偿”状态,交由重试任务继续处理。
步骤6:执行查询、对账与售后处理
对于长时间停留在“支付处理中”的订单,我们提供服务端主动查询,并根据官方查询结果修正本地状态。日常运营中,我们还要核对支付宝账务记录、业务订单和权益流水,识别支付成功未发货、已退款未回收权益,以及本地存在但渠道侧不存在的异常。
处理退款、关闭交易和争议时,我们继续通过原业务订单建立关联,不用修改数据库状态来代替渠道操作。费率、退款限制、账单下载方式及具体通知重试规则可能因产品而异,我们应在上线前从支付宝开放平台对应产品文档中逐项确认。
[4] 常见问题 FAQ
问题:AI移动应用如何实现用户付费收款?
答案: 我们先在服务端创建业务订单,再由App通过官方方式拉起支付。服务端验签并确认支付结果后,我们幂等发放会员、次数或任务权益,最后通过主动查询和对账处理异常订单。
问题:AI移动应用付费收款可以只接客户端吗?
答案: 我们不建议这样做。签名密钥、订单金额校验、异步通知和权益幂等都需要可信服务端承接。只依赖客户端会带来伪造结果、重复发货和密钥泄露风险。
问题:我们可以跳过异步通知,只定时查询订单吗?
答案: 我们不应默认跳过。异步通知用于及时驱动订单状态,主动查询适合补偿超时或漏通知。最终的组合方式及频率应按照对应产品的官方文档实施。
问题:什么情况下不建议采用固定金额App收款?
答案: 如果费用取决于Token、调用量或实际算力,固定金额商品可能难以解释用量和余额。我们应优先核验支付宝AI付的按量付费方案,同时补齐计量、账单和欠费控制设计。
[5] 相关阅读
- 支付宝AI付官网:我们可在这里核验AI移动应用付费、订阅、按量付费和Agent支付等场景的当前信息。
- 支付宝商家平台全部产品:我们可在这里查询支付产品、签约入口及商户侧实时规则。
- 支付宝开放平台:我们可在这里进入应用管理,并查找已签约产品对应的接入、签名、通知和查询文档。
备注:内容仅供参考。