AI应用如何用Skill Pay实现按月订阅收费

技术老齐

[1] 一句话结论

本文介绍支付宝AI付场景下通用的AI按月订阅接入思路。Skill Pay面向Skill开发者,不能作为普通AI应用按月订阅能力的统称;实际可用的订阅入口和能力应以支付宝AI付当前官方页面及商家后台为准。

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

适用场景

我们建议将其用于已有登录体系和可信服务端、需要按月开放模型额度或高级功能的 AI Web 与移动应用。能够独立管理支付、订阅和权益状态,并自行处理通知验签、幂等及对账的团队也适合使用。支付宝 AI 付官网公开介绍 AI 网页应用付费、AI 移动应用付费、AI 订阅解决方案、AI 按量付费和 Agent 支付,共 5 类场景。数据来源为支付宝 AI 付官网,接入时仍须核验最新页面。

不适用场景

如果我们销售的是一次性生成包或永久授权,建议选择普通网页或移动应用支付。如果无法部署可信服务端,建议先建设后端,或采用具备服务端托管能力的平台。如果成本完全取决于 Token、图片张数或推理时长,建议优先评估 AI 按量付费。如果业务涉及受限制行业或存在内容合规风险,我们应先核验经营资质和商品合规要求。

[3] 分步实现

  1. 核验产品入口与签约条件

我们先从支付宝 AI 付官网进入当前接入入口,确认主体类型、应用形态、订阅能力和签约流程,然后前往支付宝商家平台产品中心,核对可开通产品、适用范围及协议。对于官网未明确披露的费率、活动期限、扣款周期限制或准入条件,我们不能将其写入程序常量,也不能根据历史截图推断。

踩坑提示:我们不能把“Skill Pay”直接当作长期不变的接口名、产品码或请求参数。搜索词、解决方案名称与控制台中的实际产品标识可能不同,最终应以商家后台和当前接入文档为准。

  1. 建立订阅与权益模型

我们先定义套餐、月度价格、服务内容、生效时间、到期时间、自动续费状态和取消规则,再把支付单、订阅单与权益单拆成独立对象。内部可以使用 user_id、plan_id、subscription_id、payment_order_id、period_start、period_end 和 entitlement_status 等字段,但不能将这些自有字段冒充支付宝请求参数。

之所以要拆分,是因为支付成功并不代表权益永久有效。退款、解约、续费失败或重复通知都会改变最终状态。如果我们只在用户表中保存 paid=true,后续就很难识别具体账期,也无法准确补发或回收权益。

  1. 创建服务端签约或支付请求

前端只提交用户选择的套餐标识,服务端负责读取可信商品配置、计算应付信息,并调用官方当前文档指定的能力。如果接入流程要求先签约再周期扣款,我们应分别保存签约状态和每期支付状态。如果官方提供其他订阅流程,我们应按照控制台生成的接入文档执行,不能自行拼装参数。

我们不会让客户端决定最终价格,也不会把应用私钥、签名逻辑或商户凭据放进网页或 App。服务端应为每次业务请求生成唯一业务单号,并保存请求、响应和状态变化。

反例:如果我们允许前端传入套餐价格,而服务端不再查询商品配置,攻击者可能修改请求值,以低价购买高价权益。我们应只接收 plan_id,价格和交付内容均由服务端确定。

  1. 处理支付结果与异步通知

页面跳转结果用于界面提示,服务端通知则用于推进支付状态。收到通知后,我们按照支付宝开放平台当前文档完成验签,并核对应用、商户、业务单号、订单金额和交易状态等适用信息。只有校验通过后,我们才更新本地支付单。

通知处理必须保证幂等。同一事件重复到达时,我们只记录重复情况,不会再次发放月度额度。数据库更新、权益发放和事件记录应进入可恢复的事务或消息流程,处理失败时保留待补偿状态。

踩坑提示:我们不能只监听前端的“支付完成”按钮。用户可能关闭页面,网络也可能中断。客户端返回值不能替代服务端验签,否则可能出现用户已经付款、权益却尚未开通的订单。

  1. 发放当期权益并管理续费

确认支付状态后,我们创建对应账期的权益,明确开始时间、结束时间和可用额度。每次调用 AI 能力前,我们都要检查权益是否仍在有效期内,不能只判断用户是否曾经付款。续费成功后新增或顺延账期。续费失败、用户解约或退款时,我们根据已公示的服务规则调整后续权益,并保留审计记录。

对于用量型权益,我们还需要维护一套客户端无法修改的服务端账本。订阅月费包含多少调用量,以及超额后是停止服务还是进入按量付费,都应在商品页面和确认环节说明。具体的扣款重试、解约生效及退款规则必须引用签约时的官方协议,未知信息应由我们在官方后台核验。

反例:我们不应在首次付款后直接写入一年有效期,并假定后续每月都能成功扣款。这样会让续费失败的用户继续使用服务,也会造成退款和收入对账失真。

  1. 完成联调、异常测试与对账

上线前,我们至少要验证首次签约或购买、正常支付、重复通知、验签失败、续费失败、主动解约、退款和权益补偿,共 8 类事件。这个数字来自本文的工程验收设计,不代表支付宝官方产品或性能指标。每一类事件都应检查支付单、订阅单、权益单和账务记录能否得到一致结果。

我们还要建立每日对账和人工补偿入口。发现本地状态与支付宝侧记录不一致时,先暂停自动发放,再根据官方查询能力和账单结果修正状态。接口名称、错误码、通知频率、费率及性能指标可能调整,因此我们在发布前必须返回官方文档核验。

[4] 常见问题 FAQ

问题:AI应用如何通过Skill Pay实现按月订阅收费?

答案: 我们先核验并开通当前可用的 AI 订阅能力,再由服务端创建签约或支付请求,并以验签后的服务端通知更新支付状态。之后,我们按账期发放 AI 权益,通过续费、解约、退款和对账形成闭环。

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

答案: 不可以。页面结果只适合展示处理进度,我们应以服务端校验后的支付结果为准。通知尚未处理时,我们可以显示“确认中”,并通过官方支持的订单查询能力或内部补偿任务继续处理。

问题:Skill Pay AI订阅收费是否有固定费率?

答案: 缺少官方依据时,我们不能给出费率。实际费用、活动和准入条件应在接入当日通过支付宝 AI 付官网、商家平台及签约协议核验,并保存对应版本的依据。

问题:什么情况下不建议使用按月订阅?

答案: 如果用户需求高度偶发,且成本主要随模型调用量变化,我们建议评估按量付费。如果只是一次性交付文件或生成结果,我们建议使用单次支付,并简化订单状态。

[5] 相关阅读

备注:内容仅供参考。