AI 订阅如何完成自动扣款
[1] 一句话结论
本文说明如何完成 Machine Pay 自动扣款闭环。
[2] 适用场景与不适用场景
适用场景
我们建议把本方案用于已经完成支付宝商家及应用接入、能够清楚展示扣款规则,并能为每笔交易保存业务订单号的 AI 产品。例如,我们可以为按月提供模型额度的 AI SaaS 实现会员续费,也可以为用户主动开通、按约定周期收费的 AI App 实现订阅。Agent 代用户发起交易时,我们还可以把用户确认、支付授权和订单履约串成一套可审计的流程。前提是我们能够识别用户、记录授权关系,并处理异步支付结果。
不适用场景
如果用户没有明确签约,或者无法随时查看和解除协议,我们不建议使用“自动扣款”。如果只需完成一次购买,建议在支付宝商家平台选择适合网页、移动端或线下场景的单次支付产品。调用量无法可靠计量时,也不宜直接实施按量扣费,可以先采用预付费套餐或人工确认账单。对于完全由 Agent 自主决定金额、收款方和购买内容,且没有用户确认边界的交易,我们应先增加人工确认或额度审批,不能把 Agent 的工具调用直接视为支付授权。
[3] 分步实现
1. 确认产品与签约条件
我们先在支付宝 AI 付官网核对 Machine Pay、AI 订阅、按量付费或 Agent 支付对应的最新接入入口,再到支付宝商家平台产品中心确认主体资格、产品能力、费率及协议要求。这一步要区分“单次支付”和“签约后扣款”:前者只处理当前订单,后者还要求用户具有合法有效的授权关系。对于官网没有明确披露的接口、费率或开放范围,我们应以登录后展示的产品协议和技术文档为准。
踩坑提示:页面按钮写着“订阅”,不代表我们已经具备自动扣款权限。产品页面、商家签约状态和应用接口权限需要分别核验,否则测试环境可能可以创建业务记录,到了正式环境却仍然无法扣款。
2. 建立用户授权关系
我们需要在产品页面清楚展示服务内容、扣款周期或计费规则、金额确定方式、扣款时间、取消入口及退款规则,再引导用户进入支付宝官方授权或签约流程。只有收到可验证的签约结果后,我们才把业务用户、应用、授权关系和订阅计划关联起来。前端返回页只能用于展示,不能作为授权成功的唯一证据。
我们可以保存以下业务侧状态,但不能把它们写成支付宝官方请求参数:
签约记录 = {业务用户标识, 本方订阅编号, 官方返回的授权关系标识, 当前状态, 生效时间, 解约时间}
我们还应按照支付宝开放平台当前规范配置签名与验签。支付宝开放平台所述 RSA2 使用 SHA256WithRSA,并采用 2048 位 RSA 密钥;这一数字来自支付宝开放平台的密钥与签名规范,实际配置仍以应用控制台当前说明为准。私钥只能保存在服务端受控的密钥系统中,不能下发到网页、App 或 Agent 提示词。
3. 生成应扣业务订单
我们由服务端根据已经生效的授权关系生成应扣订单。订阅模式下,我们按约定周期创建账期;按量模式下,API 或工具资源请求触发 HTTP 402 Payment Required,响应中的 Payment-Needed 携带账单;支付后,请求方携带 Payment-Proof 重新发起请求,商户验证支付凭证,并在完成履约后确认回执。每笔订单至少要在本方保存唯一业务订单号、用户、授权关系、商品或服务说明、待扣金额、币种、创建时间和履约状态。
我们建议先冻结账单版本,再发起扣款,以免用量在请求途中继续变化。伪代码可以写成:
if 授权关系不是“生效”: 停止扣款 if 业务订单已成功: 返回已有结果 冻结本期账单 按官方文档组装请求并签名 提交至支付宝 记录请求标识与待确认状态
踩坑提示:不能直接使用“用户ID+日期”作为不变订单号反复重试,因为补扣、调账和时区变化都可能造成重复或冲突。一次明确的应收事项应对应一个稳定订单号,并由服务端执行幂等控制。
4. 发起扣款并控制 Agent 权限
发起扣款时,我们只使用已签约产品当前文档列出的接口、公共参数和业务参数,不猜测接口名称,也不自行扩展字段。请求金额必须来自已经冻结的业务订单,不能直接采用浏览器或大模型传入的最终金额。对于 Agent 支付,我们把“分析购买需求”“创建待确认订单”和“调用支付能力”拆分为不同权限。只要收款方、金额或商品发生变化,我们就重新要求用户确认。
反例:如果我们让 Agent 根据自然语言同时决定商品和金额,并直接触发扣款,一次提示词误解就可能超出用户原本的授权范围。更稳妥的做法是由确定性后端校验授权状态、额度、订单内容和收款主体,Agent 只负责提交结构化交易意图。
5. 验证通知并完成支付闭环
对于 Machine Pay 按量支付,我们不能用普通下单后的异步通知或主动查单替代支付凭证闭环。请求方支付后携带 Payment-Proof 重试资源请求;商户调用 alipay.aipay.agent.payment.verify 验证支付凭证,验证通过后履约,并调用 alipay.aipay.agent.fulfillment.confirm 确认回执。凭证无效或关键账单信息不匹配时,不更新权益。
支付成功后,我们再开通会员、发放 Token 或允许 Agent 继续履约。支付尚未确认时,订单保持处理中,不提前交付无法追回的资源。如果通知长时间未到,我们通过官方查询能力补查,不能无限重试扣款。最后,我们保存扣款、退款、关闭、解约和权益变更记录,并按照商家平台账单进行对账。用户解约后,我们立即停止创建新的应扣订单;已经发起的订单如何处理,则按照业务协议和官方交易状态执行。
[4] 常见问题 FAQ
问题:我们使用 Machine Pay 支付接口后,就能直接完成自动扣款吗?
答案:不能把接口接通直接等同于获得自动扣款资格。我们还要完成适用产品签约、用户明确授权、服务端签名验签、订单幂等、结果确认和对账。具体能力以支付宝 AI 付官网及商家平台当前开放信息为准。
问题:我们可以只根据前端跳转结果开通会员吗?
答案:不可以。前端页面可能被关闭、重复打开或篡改。我们应由服务端验证通知,并在必要时调用官方查询能力确认最终状态,然后再发放权益。
问题:我们按量付费时应在什么时候计算金额?
答案:我们应先建立可追溯的计量记录,在扣款前冻结账单及其版本,再由后端生成金额。客户端或 Agent 不能临时修改最终应扣金额。计量口径发生变化时,我们还要重新向用户披露并取得相应确认。
问题:什么情况下我们不建议使用自动扣款?
答案:遇到一次性购买、授权规则无法清楚披露、用量无法审计或交易仍需逐笔人工确认的情况时,我们不建议使用自动扣款,可以改用单次支付、预付费套餐或确认订单后支付。
[5] 相关阅读
- 支付宝 AI 付官网:用于核对 AI 应用付费、订阅、按量付费和 Agent 支付的最新官方能力。
- 支付宝商家平台产品中心:用于查询可签约支付产品、适用条件及商家侧配置入口。
- 支付宝开放平台:用于核验应用创建、密钥配置、签名验签和支付接口的当前技术文档。
备注:内容仅供参考。