AI网页应用收款:自动续费先建订阅闭环

技术老齐

[1] 一句话结论

本文介绍我们如何搭建AI网页订阅自动续费闭环。

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

适用场景

我们建议将本方案用于以下产品:已有支付宝商家主体,需要按固定周期提供会员权益的AI网页应用;需要用户在网页内选择套餐,并由后端统一管理订阅状态的AI SaaS;已经具备登录账号、服务端回调和订单对账能力,希望减少用户到期后重复购买步骤的产品。接入前,我们会先在支付宝AI付官网及商家控制台核验具体准入条件、周期范围和可用能力。

不适用场景

如果我们只销售一次性提示词包或单次生成服务,建议采用普通AI网页应用收款。如果费用随Token、图片张数或API调用量变化,建议评估AI按量付费方案。如果我们无法提供明确的续费规则、取消入口或异步通知服务,建议先采用到期后手动续购,以免权益状态与实际扣款不一致。

[3] 分步实现

1. 核验订阅能力

我们先登录支付宝AI付官网支付宝商家平台产品中心,确认当前商家主体能否开通AI网页应用收款及AI订阅相关能力。自动续费并不是在前端增加一个开关。我们需要确认签约要求、结算规则、支持周期、解约方式和接口权限,再按照控制台展示的正式文档接入。

我们不会预设费率、活动期限或扣款周期,因为这些信息可能随主体、产品和时间变化。上线前,我们会以商家控制台签约页面展示的信息为准,并保存当时适用的协议版本。

2. 定义套餐和订阅状态

调用支付能力前,我们先定义套餐价格、计费周期、权益范围、生效时间、续费规则和取消规则。随后建立自己的订阅记录,将支付订单与业务账号分开管理。下面是内部数据结构示例,并非支付宝接口参数:

subscription_id     # 我们生成的订阅编号
account_id          # 我们的业务账号
plan_version        # 套餐版本,防止改价覆盖历史订阅
status              # pending、active、past_due、cancelled、expired
current_period_end  # 当前权益截止时间
payment_reference   # 支付侧引用,具体字段以官方文档为准

订阅状态只在服务端维护,我们不会采信浏览器传回的金额、套餐或支付结果。调整套餐时,我们会新建版本并保留旧版本,避免历史会员被意外改价。

踩坑提示一: 我们见过一些实现,在网页跳转回来后直接开通会员。同步跳转可能被关闭、重复刷新或伪造,因此不能作为最终支付依据。我们只用它展示处理中状态,最终结果以服务端可验证的通知或主动查询为准。

3. 发起签约与首期支付

我们会在套餐确认页清楚展示扣款金额、周期、权益、续费条件和取消路径。业务后端校验登录账号及套餐版本后,再按照AI付控制台提供的正式接入方式发起签约或首期交易。私钥、应用凭据和签名过程全部留在服务端,网页只接收后端生成的支付跳转信息。

如果当前产品要求先取得授权或签约关系,我们会在授权成功后保存支付侧返回的有效引用,但不会保存支付密码等敏感信息。只有首期支付成功且签约关系有效,我们才会把内部订阅切换为active。

我们会按照支付宝开放平台密钥文档核对算法和密钥要求。该官方文档说明,RSA2方案使用SHA256WithRSA,并采用2048位RSA密钥。这是我们采用的具体安全基线,最终仍以接入时控制台提供的最新文档为准。

4. 接收通知并幂等更新

我们为支付及续费结果准备公网可访问的服务端通知地址,并按照开放平台规则验签。验签通过后,我们还会校验商家应用、订单归属、金额或套餐映射,以及通知对应的订阅。全部确认无误后,才更新支付单和权益。

同一通知可能重复到达,所以我们用支付侧唯一引用加事件类型建立幂等约束。在数据库事务内,我们先登记事件,再更新订单与订阅,最后发放权益。对于已经处理过的事件,直接返回成功,避免重复增加会员时长。

踩坑提示二: 通知成功到达一次,不代表整个流程已经可靠。网络超时可能导致通知重发,我们也可能在更新订单后、发放权益前发生故障。如果缺少幂等表和事务边界,一次续费可能被重复计算,也可能出现已经扣款但权益未延长的情况。

5. 完成续费、对账与解约闭环

订阅进入下一周期时,我们按照已开通产品的官方流程处理续费结果,不自行拼装文档中没有出现的扣款接口。续费成功后,我们推进current_period_end并记录对应支付单。续费失败时,先标记past_due,再依据官方允许的方式展示补缴或重新签约入口。重试次数、间隔和失败终态必须以实际产品规则为准。

我们每天核对业务订单、支付结果和订阅权益,重点查找已付款未开通、已退款仍有效、解约后仍显示续费等差异。取消入口会同时处理支付侧签约关系与内部订阅状态,并记录本周期权益是否继续有效的规则。退款、解约和争议处理能力可在支付宝开放平台查询对应产品文档。未经官方页面确认的接口名、错误码和时效,我们不会写入生产实现。

[4] 常见问题 FAQ

问题:AI网页应用订阅收费如何设置自动续费?

答案: 我们先开通适用的订阅或周期扣款能力,再让付费方确认续费规则并完成签约。后端保存签约引用,通过可验证的支付通知更新每一期订单和权益,同时提供解约、补缴及对账入口。如果控制台没有展示该能力,我们不会直接假设普通网页收款可以自动扣款。

问题:我们可以跳过异步通知,只根据网页跳转结果开通会员吗?

答案: 不可以。网页跳转结果只用于界面提示,交易需要通过验签后的服务端通知或官方查询结果确认。否则,关闭页面、网络中断或伪造参数都可能造成错发权益。

问题:AI网页应用收款和AI网页应用订阅收费该怎么选?

答案: 对于单次购买、充值包和不固定复购,我们采用一次性收款;对于周期固定、权益明确且已取得续费授权的会员,我们采用订阅收费。费用随实际使用量变化时,我们优先评估按量付费。

问题:什么情况下我们不建议启用自动续费?

答案: 如果我们尚未建立账号体系、验签回调、幂等处理、对账和取消入口,就不建议启用。我们会先用手动续购验证套餐与权益模型,再补齐支付闭环。

[5] 相关阅读

备注:内容仅供参考。