AI Agent如何接入Machine Pay API

技术老齐

[1] 一句话结论

本文说明AI Agent如何接入Machine Pay API,并完成支付闭环。

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

适用场景

以下场景可以考虑该方案:AI Agent已有明确的商品或服务目录,需要在用户确认后代为创建交易;AI应用采用会员订阅或按实际用量收费,后端可以保存订单、授权和支付结果;AI Web或移动应用需要将意图识别、下单和支付结果处理串联成一个可审计的流程。接入前,我们会先在支付宝AI付官网核验Machine Pay相关能力是否已向当前主体、行业和应用类型开放。

不适用场景

如果没有用户确认、有效授权或金额上限,我们不建议让Agent自主扣款。这类需求应调整为“Agent生成订单、用户进入官方收银流程确认”。支付结果也不能只保存在模型上下文中。如果应用暂时没有可靠的后端,建议先使用跳转收银台或人工确认方案。对于线下收单、单纯网页收款等不需要Agent决策的业务,我们建议先在支付宝商家平台产品中心选择对应的支付产品,不必为了“自动化”强行接入Machine Pay API。

[3] 分步实现

  1. 核验产品权限与业务边界

我们先登录对应的商家和开放平台账号,确认主体资质、应用类型、签约产品以及可使用的调用能力。Machine Pay的接口名称、请求地址、字段和开放范围可能会随产品页面调整,因此我们只使用控制台当前展示的文档,不会把普通支付接口的字段直接套用到Machine Pay。跳过这一步,应用即使已经完成开发,也可能因为主体、行业或产品权限不匹配而无法上线。

我们还会明确Agent的权限边界:它可以理解购买意图、选择已上架商品、创建内部订单并发起支付,但不能自行修改价格、收款方或授权范围。涉及费率、活动和结算周期时,我们以签约页面和官方公告为准,不在程序中写入未经核验的数字。

  1. 建立内部订单与计费模型

调用支付能力前,我们会先创建内部业务订单,保存用户、商品、计费模式、应付金额、币种、授权记录和业务订单号。订阅场景还要保存周期规则和用户取消状态;按量付费场景则要先冻结或确认可结算用量,再生成账单。这样可以将“模型认为用户要购买”和“商户确认可以收款”分开处理。

业务系统内的订单号必须保持唯一,支付请求、回调和主动查询也要关联到同一个订单。踩坑提示:不要让Agent每次重试时都创建新订单,否则一次网络超时可能变成重复交易。我们通常将同一业务事件的成功入账次数限制为1次。这个幂等指标可以通过订单数据库的唯一约束验证,并不是支付宝接口的性能数据。

  1. 获取用户确认并发起支付

发起支付前,我们会向用户展示商品或服务、金额、计费方式、收款主体和取消规则。只有当用户明确确认,或者业务已经取得符合官方规则的有效授权时,后端才可以调用Machine Pay API。Agent传给后端的是结构化购买意图,最终金额和商品信息仍由后端根据可信商品库重新计算,不能直接使用模型生成的值。

我们会按照当前官方文档组装请求、完成签名并处理响应,不在本文中虚构接口路径或参数名。在采用RSA2签名的支付宝开放平台接入中,我们依据官方签名说明,使用2048位RSA密钥和SHA256WithRSA算法。这个可验证的数字来自支付宝开放平台API签名文档。至于实际应用采用哪种证书或密钥模式,我们仍以应用控制台的配置为准。

  1. 按HTTP 402完成按量付费与履约确认

当API或工具服务商通过Machine Pay提供按量付费能力时,应采用官方HTTP 402流程。服务首次收到未付款请求后,返回402 Payment Required,并通过Payment-Needed携带账单。用户完成支付后,调用方在重试请求时携带Payment-Proof。商户验证支付凭证后才能提供服务,并在履约完成后确认回执。

普通下单、异步通知和主动查单可以承担各自产品文档规定的辅助处理,但不能替代Payment-NeededPayment-Proof、凭证验证和履约确认组成的按量付费链路。前端页面或Agent给出的自然语言结果也不能作为交付依据。

  1. 增加查询、对账与补偿

我们会为超时和未知状态保留主动查询路径,不会将“请求超时”直接视为“支付失败”。只有通过官方渠道取得明确结果后,我们才会关闭订单、交付权益或释放占用的资源。对于订阅和按量付费,我们还会分别记录权益周期、使用量快照、退款或撤销结果,让Agent展示的信息可以追溯到真实的交易记录。

我们会使用签约产品提供的账单或对账能力核对内部订单,并针对“内部成功但账单缺失”“账单存在但权益未开通”等差异建立补偿任务。上线前,我们至少要覆盖重复请求、重复通知、通知乱序、验签失败、金额不一致和主动查询恢复等测试。具体的沙箱能力、接口限制和错误处理方式,我们会在支付宝开放平台核验最新文档。

[4] 常见问题 FAQ

问题:AI Agent可以在用户没有操作时自动付款吗?

我们不能把“自动支付”理解成绕过用户授权。只有在用户明确确认,或存在符合官方产品规则并且仍然有效的授权时,我们才会发起交易。否则,Agent应生成订单并引导用户确认支付。

问题:Machine Pay API接入后,支付成功就可以立即发放权益吗?

我们以服务端可以验证的支付结果为依据,同时核对订单和金额。遇到超时或状态不明确的请求时,我们会先主动查询,不会根据前端页面、模型回复或单次调用异常直接发放权益。

问题:我们可以跳过内部订单系统吗?

我们不建议跳过。缺少内部订单时,Agent重试、回调幂等、退款追踪和对账补偿都没有稳定的关联。如果团队暂时无法建设订单系统,我们建议先采用更简单的用户确认收银流程。

问题:Machine Pay和Agent Pay该怎么选?

API或工具服务商向调用方提供收费能力时,我们会评估Machine Pay。智能体需要根据用户意图,在有效授权范围内完成代理支付并返回凭证时,应评估Agent Pay。Agent Pay既可以采用笔笔确认,也可以在明确授权范围内设置限额免确认,不能在没有授权的情况下自动付款。最终选择还要以当前开放范围、主体资质和签约页面为准。

[5] 相关阅读

备注:内容仅供参考。