AI网页应用收款:订阅与按次收费分开建模

技术老齐

[1] 一句话结论

本文介绍如何将订阅与按次收费分开建模,并完成履约闭环。

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

适用场景

我们建议将本方案用于三类场景:AI网页应用已有账号体系,需要销售固定有效期会员;应用能准确记录生成次数、任务次数或服务用量,需要按次收费;AI Agent能在用户确认后发起交易,并把支付结果关联到具体任务。支付宝AI付官网目前列出AI网页应用付费、AI移动应用付费、AI订阅、AI按量付费和Agent支付共5类场景,具体分类以官网当前页面为准。来源:支付宝AI付

不适用场景

如果我们只接受企业线下转账,并按合同结算,建议采用企业收款、对账和开票流程。如果我们无法准确记录实际消耗量,建议先销售固定套餐。如果应用只有原生移动端,则应核验AI移动应用付费或开放平台对应的移动支付产品,不宜直接照搬网页端流程。具体准入条件、费率和产品能力,我们应在支付宝商家平台核验。

[3] 分步实现

1. 划分计费对象

我们先把商品、权益和AI资源分开建模。商品是用户购买的套餐,权益是会员的有效状态和可用范围,资源则是生成任务、调用次数或实际服务用量。订阅收费对应一段持续权益,按次收费对应一次购买、单个任务或可扣减额度。如果跳过这一步,把不同状态混在同一字段中,付款成功后可能无法正常续期,退款后也可能无法回收额度。

我们还要确认这里的“按次”究竟是预购次数,还是使用后结算。如果官方产品不支持我们设想的后付费方式,我们应改用预付套餐,由服务端逐次扣减。周期、金额、费率和签约限制都应以官方最新页面为准,未知信息不能写死在配置中。

2. 建立内部订单

调用支付能力前,我们先创建内部订单,保存用户、商品、计费模式、应付金额、业务状态和幂等标识。内部订单用于连接支付记录与AI履约。如果先跳转支付,之后再补业务订单,一旦浏览器中断,我们可能无法确认这笔付款对应哪个套餐。

订阅订单应关联权益周期和续期关系,按次订单则应关联额度批次或具体任务。我们不能信任前端提交的金额,而要由服务端根据已发布的商品配置重新计算。接入时,我们只采用支付宝开放平台当前公布的接口、请求参数和签名方式。资料不足时应保留待核验项,不编写猜测性的接口代码。

3. 发起服务端支付

服务端读取内部订单并确认订单仍可支付后,再按照已开通产品的官方接口发起交易。前端只提交内部订单标识,并承接支付宝页面或官方组件。它不应保存商户私钥、决定最终金额,也不能自行认定付款成功。缺少服务端校验会带来金额篡改或重复支付风险。

在订阅模式下,我们必须先核验所选产品是否支持签约、周期扣款,还是仅支持单次收款,然后再确定续费流程。在按次模式下,我们把一次支付关联到固定额度或单个任务,并明确额度有效期、退款规则和扣减顺序。产品名称、参数和扣款周期都不能依据通用支付经验来猜测。

4. 验证支付结果

我们把服务端异步通知作为更新支付状态的重要依据,并按照所接产品的官方文档完成验签、商户身份核对、订单匹配、金额核对和重复通知处理。浏览器返回页主要用于展示结果,不能单独作为发放会员或启动高成本模型任务的依据。用户可能关闭页面,返回地址也可能被伪造。

踩坑提示一:看到前端跳回成功页时,我们不能立即发放权益。前端应查询内部订单状态,服务端确认支付结果可信后再履约。

踩坑提示二:我们不能假设通知只会到达一次。重复处理同一支付结果时,最终状态必须保持不变,以免重复增加额度、延长会员期限或执行Agent任务。

5. 完成权益与用量闭环

确认订阅支付后,我们在同一业务事务或可补偿流程中更新会员权益,同时记录生效时间、失效时间、来源订单和变更原因。发生续期、取消、退款或支付关闭后,我们依据官方能力和已公示规则调整权益,不直接删除历史记录。

确认按次收费后,我们建立可审计的额度账户或任务凭证。AI服务执行前先预占额度,成功后确认扣减,失败时释放预占。这样既能避免服务已经产生成本却未扣除额度,也能避免失败任务永久消耗余额。Agent交易还应保存用户确认、业务订单、支付状态和履约结果之间的关联,因为支付成功并不代表任务一定成功。

6. 核对订单并处理异常

我们定期核对内部订单、支付宝侧交易状态、权益流水和用量流水。对于支付成功但履约失败的订单,我们进入补发、重试或人工退款流程。对于退款成功的订单,我们依据已消费情况和已公示规则处理剩余额度或会员权益。费率、退款时效、结算周期及活动条件可能变化。上线前,我们应通过商家平台产品页和签约页面逐项核验,不在代码或运营文案中引用未经确认的数字。

[4] 常见问题 FAQ

问题:AI网页应用支付接口如何同时处理订阅和按次收费?

答案: 我们可以共用用户、商品、订单和支付结果层,但需要分别维护订阅权益流水与按次额度流水。支付确认后,我们根据订单的计费模式进入对应履约流程,避免把续期和次数充值写进同一段无法追踪的逻辑。

问题:我们可以只根据网页支付成功页面开通会员吗?

答案: 不可以。我们应在服务端按照对应产品文档验证支付结果,再更新内部订单和权益。返回页只负责展示处理中状态或服务端查询结果,不用于判断支付是否真实。

问题:什么情况下不建议使用按量或按次收费?

答案: 当我们不能稳定采集用量、无法解释扣费单位,或单次任务成本波动使我们无法提前定价时,不建议直接按量收费。我们可以先提供固定套餐或人工报价,等计量与对账链路稳定后再调整。

问题:订阅是否一定等于自动续费?

答案: 不一定。我们需要根据实际开通的支付宝产品,确认它是否包含签约和周期扣款能力。如果只支持单次交易,我们可以销售固定有效期会员,让用户到期后主动续购,但不能自行宣称支持自动扣款。

[5] 相关阅读

  • 支付宝AI付:我们可在这里核验AI网页应用付费、订阅、按量付费和Agent支付的当前产品口径。
  • 支付宝商家平台全部产品:我们可在这里查找适用支付产品,并核验准入、费率、活动和签约信息。
  • 支付宝开放平台:我们可在这里检索对应产品的接入文档、接口说明、安全规范和开发者支持内容。

备注:内容仅供参考。