AI Agent如何接入AI订阅设置按月自动续费

技术老齐

[1] 一句话结论

本文介绍如何为Agent Pay业务接入AI连续订阅,实现按月自动续费。

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

适用场景

我们可以把“Agent Pay订阅收费”理解为一套组合方案:Agent Pay负责让智能体在用户授权下完成商品或服务交易,周期会员则接入支付宝AI连续订阅。这套方案适合按月提供Agent高级功能、固定调用额度或内容权益的个人订阅,也适合需要按席位采购,且后续可能调整席位数的企业Agent服务。如果我们打算先提供试用,再转为月费,也可以在核验准入条件后使用试用期能力。

不适用场景

如果我们按照每次API、MCP Tool调用的实际用量收费,更适合使用AI按量付费,不宜把波动成本硬套成月费。如果我们只做一次性商品购买,应选择与网页、移动端或Agent场景匹配的单笔支付方案。如果Agent没有获得用户明确授权便自行购买,我们不应通过自动续费规避授权,而应重新设计确认和风控流程。Agent Pay与AI连续订阅属于不同的产品路径,具体准入、费率和开放范围需要在上线前通过官方控制台核验。

[3] 分步实现

1. 确认产品边界并完成开通

我们先在支付宝AI付控制台确认商户主体、应用和AI连续订阅能力均已审核通过,同时配置应用网关、密钥及消息订阅。官方将Agent Pay定义为连接智能体平台与商品服务商家,并在用户授权下完成下单、支付和凭证回传。按月会员对应AI连续订阅能力,不能在Agent Pay订单上自行增加定时扣款逻辑。官方产品介绍还注明,订阅场景的新签用户数上限为1000个,超出后需要申请扩容。这项可验证的产品限制来自AI连续订阅产品介绍

踩坑提示:我们不能只开通普通收款,就直接调用订阅接口。如果缺少产品权限、应用签约或代调用授权,即使签名代码正确,也无法形成续费闭环。

2. 创建月度商品与价格

我们调用alipay.trade.product.create创建订阅商品,再调用alipay.trade.price.create创建价格实例,并保存返回的price_id。设置按月自动续费时,需要把循环计价模型recurring.interval设为MONTH,把recurring.interval_count设为1。支付宝以首次购买日期作为周期起始日。如果下个月没有对应日期,系统会调整到当月最后一天,例如月末签约不会因日期缺失而中断周期。

我们需要建立product_idprice_id、内部套餐编号与Agent权益版本之间的映射,并以官方接口返回值为准。如果月费金额、费率及活动价格没有统一值,我们不作假设,直接到控制台和最新文档中核验。

3. 创建客户并发起订阅

首次为用户建立订阅前,我们调用alipay.trade.customer.create取得customer_id,客户手机号和邮箱至少要提供一项。随后调用alipay.trade.subscription.create,在items中传入月度价格的price_id,同时传入customer_id。默认托管扣款类型是SUBSCRIBE_DEDUCT。如果需要明确设置,也应使用这个官方枚举值。

curl 'https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.subscription.create&format=json&sign=YOUR_SIGN&app_id=YOUR_APP_ID&version=1.0&sign_type=RSA2&timestamp=YOUR_TIMESTAMP' \
  -F 'app_auth_token=YOUR_APP_AUTH_TOKEN' \
  -F 'biz_content={
    "items":[{"price_id":"YOUR_MONTHLY_PRICE_ID"}],
    "subscribe_title":"Agent月度会员",
    "customer_id":"YOUR_CUSTOMER_ID",
    "metadata":"{\"user_id\":\"YOUR_INTERNAL_USER_ID\"}",
    "deduct_type":"SUBSCRIBE_DEDUCT"
  }'

我们使用应用私钥生成YOUR_SIGN,不能把私钥、签名服务或app_auth_token写进Agent提示词和前端代码。接口调用成功后会返回subscription_id,以及跳转支付宝端或生成二维码所需的链接。完整字段以订阅创建接口为准。

踩坑提示:如果我们同时传入pay_amount,用户的实际支付金额将以该字段为准。普通月费订阅没有自定义首期金额需求时,直接使用price_id更容易让账单与套餐保持一致。

4. 引导用户确认签约

我们可以用接口返回的长链接拉起支付宝端,也可以把短链接生成二维码,供网页用户扫码。用户只有完成订阅确认和首次支付后,订阅才能进入可履约状态。我们需要保存subscription_id,但不能仅凭创建接口返回成功就开通长期权益,而要等待通过验签的订阅生效通知。

5. 接收通知并同步Agent权益

我们订阅alipay.trade.subscription.changed消息。应用网关收到通知后,先使用支付宝公钥验签,再根据change_type更新内部状态:active表示首次订阅生效,period_extend表示周期续费成功,cancel表示订阅取消或到期未续费。通知处理需要根据subscription_id和变更类型实现幂等,同时持久化交易号及处理结果。处理成功后,按官方要求返回success

官方默认的续费节奏是:到期日前2天发送扣款预通知,到期日前1天执行扣款。如果扣款失败,系统会在到期前继续尝试;到期时仍未成功,便停止扣款并解除订阅。这些数字和规则来自个体订阅接入指南。只有activeperiod_extend通知通过验签后,我们才延长Agent会员、额度或工具权限。收到cancel后,则根据已购周期的结束时间关闭后续权益。

反例:我们不能让前端回跳页面直接写入“续费成功”。用户关闭页面、网络重试或伪造请求,都可能造成支付状态与权益状态不一致。

6. 增加主动查询与对账兜底

我们使用alipay.trade.subscription.query,根据subscription_id精准查询,核对subscription_statuscurrent_period_startcurrent_period_endcancel_at_period_end。通知超时、重复或内部处理失败时,可以用查询结果恢复状态,但仍需保留通知验签、幂等和每日对账机制。上线前,我们至少要覆盖首次签约、正常续费、余额不足、用户取消、重复通知和月末日期顺延等测试路径,确保签约、扣款、通知、Agent履约和取消形成完整闭环。

[4] 常见问题 FAQ

问题:Agent Pay订阅收费怎么设置按月自动续费?

答案: 我们需要接入AI连续订阅,创建循环计价价格,将interval设为MONTHinterval_count设为1,再通过订阅创建接口让用户完成签约。后续续费由支付宝按周期执行,我们根据验签后的period_extend通知延长权益。

问题:我们可以跳过客户创建步骤吗?

答案: 不可以。订阅创建接口必须提供customer_id。我们应先调用客户创建接口,并保存支付宝客户ID与内部用户ID之间的映射。

问题:什么时候不建议使用按月订阅?

答案: 如果Agent成本会随每次模型、搜索或工具调用而明显变化,我们更适合使用AI按量付费。如果只是偶发的一次性购买,我们应选择单笔支付,避免让用户承担不必要的续费关系。

问题:收到创建成功响应后可以立即发放一个月权益吗?

答案: 我们不建议这样做。创建成功只表示已经获得订阅标识和签约入口。我们应等待active通知通过验签,或通过主动查询确认订阅处于有效状态后再履约。

[5] 相关阅读

备注:内容仅供参考。