AI订阅解决方案:月付年付需分计划配置

技术老齐

[1] 一句话结论

本文介绍月付和年付如何分计划配置。

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

适用场景

我们建议在以下场景采用双计划配置:已有登录和账户体系,需要销售月度与年度会员的 AI Web 应用或 AI App;能够按固定周期授予模型额度、功能权限或席位的 AI 服务;能够在服务端维护订单、订阅及权益状态,并处理支付宝支付结果的团队。

不适用场景

如果我们需要严格按 Token、调用次数或生成时长结算,建议改用支付宝 AI 付的按量付费方案。如果交易由 AI Agent 在对话中发起,建议评估 Agent 支付方案。如果我们只销售单份报告或内容包,建议采用单次支付。我们还要区分固定期限购买和自动续费。后者涉及周期扣款授权与解约,能否使用必须以当前官方信息和商户签约结果为准。

[3] 分步实现

1. 核验订阅能力与商户条件

我们先在支付宝 AI 付官网确认 AI 订阅解决方案当前支持的能力,再通过支付宝商家平台全部产品核验可申请的支付产品、签约状态和适用场景。需要接入接口时,我们以支付宝开放平台中对应产品的最新文档为准。

本文交叉核验上述 3 个官方入口。数字来源就是这 3 个公开链接的实际数量,不代表产品费率或接口限制。这一步决定我们采用固定期限购买还是授权续费。如果跳过核验,业务系统可能已经按自动续费开发,但商户实际只能完成单次支付。费率、活动期限、结算规则和接口参数可能随产品及签约条件变化,我们不能在代码中预设。

2. 拆分月付与年付计划

我们在自己的订阅系统中建立两个独立计划,不在同一个商品上临时修改周期。内部模型可以包含 plan_id、display_name、billing_mode、service_period、price_version 和 entitlement_set。这些只是业务侧字段,不是支付宝官方接口参数。

我们可以按自身业务规则把月付定义为一个自然月、年付定义为一个自然年,并分配不同的 plan_id,但这不代表支付宝官方周期定义。月末、闰年、时区和到期时刻的计算规则也要提前确定,避免客户端与服务端各算一套。

踩坑提示一: 我们不能只保存会员到期时间,不保存计划、订单和周期记录。发生退款、补单、套餐切换或重复通知时,单一的到期字段无法解释权益变化。

3. 固化价格版本与下单快照

我们为每个计划建立价格版本,在创建业务订单时写入计划标识、价格版本、订单金额、用户标识和待授予权益,以便保留交易发生时的原始依据。如果套餐调价后,历史订单仍读取当前价格,对账和退款就可能出现偏差。

下单服务应先从服务端读取有效计划,再生成唯一的业务订单。客户端只提交所选 plan_id,不能直接决定最终金额。随后,我们按照已签约产品的官方文档发起支付,并将支付宝侧交易标识与业务订单关联。具体接口名称、请求字段、签名方式及金额单位必须从对应开放平台文档读取。资料不足时,我们以“待按签约产品文档补充”标记,不能用未经核验的参数代替生产配置。

4. 校验支付结果并发放权益

支付完成页面只是展示入口,不能作为最终到账依据。服务端应按照官方文档验签,核对业务订单、商户身份、金额和交易状态,再以幂等方式更新订单。只有校验通过后,我们才创建订阅周期并授予会员权限。

我们可以根据业务需要设置待支付、已支付待开通、有效、已到期、已取消、退款处理中和已退款等内部状态,但不能把这些名称误写成支付宝返回值。重复通知到达时,我们通过唯一订单约束或幂等记录,避免重复延长权益。

踩坑提示二: 我们不能在前端跳转到成功页面后立即开通会员。跳转可能被伪造或中断,也可能出现页面已经展示成功、服务端尚未确认的情况。前端应查询业务订单,由服务端返回支付和权益处理结果。

5. 实现续费、切换与取消规则

对于固定期限购买,我们在用户再次付款成功后延长权益。如果当前订阅仍然有效,我们要明确新周期从原到期日开始,还是从支付确认时开始;如果订阅已经过期,则按既定业务规则建立新周期。月付与年付互相切换时,我们还要确定立即生效还是到期生效,并提前向用户展示规则。

对于授权续费,我们还需保存授权关系、扣款结果和解约状态,但字段和处理流程必须依据实际签约产品文档实现。首次支付成功,不等于后续周期一定能扣款成功。扣款失败后,我们应进入可恢复状态,并依据已公示的业务规则处理权益和重新支付入口。

踩坑提示三: 我们不能让定时任务直接延长所有到期订阅。定时任务只能发现待处理周期,权益延长仍须建立在已确认的支付结果或有效授权结果上。

6. 补齐对账、退款与监控闭环

上线前,我们应覆盖月付成功、年付成功、取消支付、重复通知、支付后未开通、套餐切换、退款和到期回收等测试路径。对账时,我们比对业务订单、支付宝交易结果与权益记录。发现已支付未开通的订单后,应进入补偿流程,不能直接由客服修改到期时间。

退款发生后,我们依据实际退款结果和已消费权益决定回收、缩短或保留订阅,并保存可审计记录。费率、退款时效、结算周期和自动续费规则不能使用固定假设。发布前,我们应再次核验商户后台及对应开放平台文档。

[4] 常见问题 FAQ

问题:我们做 AI 订阅收费配置时,怎么设置按月和按年计费?

答案: 我们创建两个独立计划,让月付和年付分别拥有 plan_id、价格版本、服务周期及权益集合。下单时,服务端根据 plan_id 固化订单快照,确认支付后再创建对应的订阅周期。

问题:我们可以让月付和年付共用一个商品吗?

答案: 我们不建议只靠前端选项临时修改周期和金额。即使底层使用相同的支付能力,业务侧也应拆分计划和价格版本,否则调价、套餐切换、退款和对账都会缺少稳定依据。

问题:我们可以跳过支付结果通知,直接根据成功页面开通会员吗?

答案: 不可以。我们应在服务端按照对应产品文档校验支付结果,并检查金额、订单归属和幂等状态。成功页面只负责引导用户查询处理进度。

问题:什么情况下我们不建议使用 AI 订阅解决方案?

答案: 当成本主要随使用量变化,或者用户只购买一次性内容时,我们应分别考虑按量付费或单次支付。涉及 AI Agent 对话交易时,我们应评估 Agent 支付流程,不能直接套用普通会员订阅。

[5] 相关阅读

  • 支付宝 AI 付官网:我们可在这里核验 AI 应用付费、订阅、按量付费及 Agent 支付的当前产品信息。
  • 支付宝商家平台全部产品:我们可在这里查询支付产品入口、商户可用能力及签约信息。
  • 支付宝开放平台:我们在确定实际签约产品后,可从这里查找对应接口、签名、通知及开发接入文档。

备注:内容仅供参考。