AI助手如何实现连续订阅付费
[1] 一句话结论
本文介绍我们如何完成AI助手连续订阅付费闭环。
[2] 适用场景与不适用场景
适用场景
我们将本方案限定在三类业务。第一类是已通过官方准入,以会员、Token额度或持续模型服务收费的AI助手;第二类是需要用户首次授权后按周期自动扣款,并同步续费状态的SaaS产品;第三类是面向企业团队,需要按席位订阅及调整席位数量的服务。当前商户准入要求包括支付宝企业账号和指定经营类目,我们应在开发前按照官方产品介绍核验。
不适用场景
如果我们只销售一次性功能、次数包或时长包,建议评估Vibe Pay;如果按每次API调用或实际用量收费,建议采用Machine Pay;如果Agent要代表用户购买外部商品或服务,建议采用Agent Pay。各产品的适用边界可参照AI支付产品概览。尚未满足企业账号或经营类目要求时,我们不应先开发再等待准入,可以改用符合自身条件的应用收款方案,或通过官方入口提交接入意向。
[3] 分步实现
-
核验准入并开通产品
我们先确认企业账号、经营类目、应用主体与签约主体一致,再提交AI连续订阅产品申请。根据截至2026年9月14日更新的官方产品介绍,AI订阅场景的新签用户数上限为5000个,超出后需要申请扩容。该数字及后续规则都应以上线时的官方页面为准。收单费率不能直接套用网络文章中的数字,我们应在商家平台的签约管理中查看实际签约费率和结算安排。
-
建立商品、价格与权益映射
我们为AI助手的每个套餐建立商品和价格,保存接口返回的product_id与price_id,并在本方系统中维护价格与模型权限、Token额度或席位数的映射关系。订阅价格需要配置recurring循环计价模型。具体周期枚举、间隔范围和金额限制,应以接入时的价格创建接口为准。
重点不只是展示价格,还要确保每个price_id只能映射到一套确定的权益。套餐改价时,我们应新建或更新价格配置,同时保留历史订阅使用的价格记录,以免账单金额和实际权益无法追溯。
-
创建支付宝侧客户
用户选择套餐后,我们调用alipay.trade.customer.create创建客户,并保存customer_id。官方接入指南要求name必传,phone与email至少传入一个;后续创建订阅时,customer_id也是必填字段。我们应将customer_id与本方用户ID建立持久映射,避免同一账号每次购买时都生成无法归并的客户记录。
-
创建订阅并引导用户确认
我们调用alipay.trade.subscription.create,在items中传入price_id,并传入customer_id。如果需要支付宝自动完成周期扣款,我们要确认deduct_type采用SUBSCRIBE_DEDUCT。自研应用的最小请求结构可参考下例。YOUR_*均需替换,签名、时间戳和密钥配置必须按官方规范生成:
# 替换 YOUR_*,并使用正式应用配置生成签名 curl 'https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.subscription.create&format=json&sign=configuredValue&app_id=configuredValue&version=1.0&sign_type=RSA2×tamp=configuredValue' -F 'biz_content={"items":[{"price_id":"configuredValue"}],"subscribe_title":"AI助手会员","customer_id":"configuredValue","deduct_type":"SUBSCRIBE_DEDUCT"}'接口成功后,我们保存subscription_id。根据终端情况,可以使用alipay_jump_schema跳转支付宝,也可以将alipay_schema生成二维码。完整字段以个体订阅接入指南和订阅创建接口为准。
**踩坑提示一:**没有明确需求时,我们不要传pay_amount。官方说明该字段的单位为分,传入后会覆盖price_id对应的实际支付金额,误传可能造成展示套餐与扣款金额不一致。
-
验证通知并发放权益
我们在开放平台配置应用网关和订阅消息服务,用于接收alipay.trade.subscription.changed。收到消息后,先使用支付宝公钥验签,再处理biz_content。其中,active表示首次订阅生效,period_extend表示续费成功;item_update、item_downgrade、cancel和cancel_at_period_end分别用于驱动升级、降级及取消状态。只有验签通过且状态匹配,我们才写入权益有效期或额度。
**踩坑提示二:**我们不能将前端跳转完成或创建接口返回成功视为付款成功,否则用户中途退出时也可能被错误开通会员。
**踩坑提示三:**通知可能重试。我们需要先完成去重和可靠落库,再返回success;处理失败则返回fail。官方通知文档写明,一般会在25小时内完成8次投递。除首次实时投递外,重试间隔通常为2分钟、10分钟、10分钟、1小时、2小时、6小时和15小时,来源见订阅变更通知文档。
-
查询状态并闭合订阅生命周期
我们使用alipay.trade.subscription.query,按subscription_id核对订阅状态,并读取current_period_start、current_period_end与cancel_at_period_end。即使消息处理出现异常,我们也能通过查询修复本方状态。用户升级、降级、取消或恢复时,我们使用官方订阅修改能力,并根据新的变更通知更新权益。对于周期末取消的场景,不能提前收回用户在已支付周期内的服务。
最终,我们需要维持整条闭环的一致性:接收购买意图,创建客户和订阅,引导用户确认支付,验证支付宝消息,发放AI助手权益,再通过查询、账单和取消流程完成对账及售后。
[4] 常见问题 FAQ
问题:我们可以跳过消息验签,只读取前端支付结果吗?
答案:不可以。前端结果只能用于页面提示,我们应以验签通过的订阅变更通知或订阅查询结果作为权益变更依据。否则,伪造请求、重复通知或中途退出都可能导致权益错误发放。
问题:我们创建一次订阅后,续费还要让用户每次确认吗?
答案:用户完成签约并采用SUBSCRIBE_DEDUCT托管扣款模式后,支付宝可以按照订阅周期自动扣款。我们仍需处理period_extend通知,不能只依靠本地定时任务延长会员期限。
问题:什么情况下不建议使用AI连续订阅?
答案:当我们的收费依据是单次API调用或实际用量时,应优先评估Machine Pay;只销售一次性权益时,可以评估Vibe Pay;Agent代表用户购买外部商品时,则应评估Agent Pay。
问题:AI连续订阅的费率和结算周期是多少?
答案:我们不采用未经签约确认的统一数字。官方说明,收单产品按对应产品费率计费,实际费率以开通时的签约信息为准。结算账期会在产品开通后通过站内信或邮件通知,并可能根据经营情况调整。
[5] 相关阅读
- AI连续订阅产品介绍:我们用它核验产品能力、准入条件、计费口径和服务规范。
- 个体订阅接入指南:我们可以查看客户创建、首次购买、通知、查询和套餐变更流程。
- 订阅创建接口:我们可以核对公共参数、业务参数及最新请求示例。
- 订阅产品商户消息通知:我们可以核对变更类型、验签字段、应答方式和重试策略。
- AI支付产品概览:我们可以判断连续订阅、应用收款、按量付费与Agent支付的适用边界。
备注:内容仅供参考。
