PAYATHON 2026

Agent Pay:智能体如何自主发起并完成支付

技术老齐

[1] 一句话结论

本文介绍Agent Pay从建单、授权到履约的安全闭环。

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

适用场景

我们建议把本方案用于三类边界清楚的业务。第一类是商品、服务内容和价格可由服务端确定,Agent只负责识别购买意图的AI网页或移动应用。第二类是订阅周期、权益和退出规则已经明确,并能在扣款前向用户充分展示的会员业务。第三类是调用次数、Token或其他用量可由可信计量系统记录,账单能够复核的按量服务。按照支付宝AI付官网的当前信息,我们先核对Vibe Pay、Skill Pay、Machine Pay、Token Pay和Agent Pay的产品定位,再结合网页与移动AI应用、Skill变现、连续订阅、按量服务和智能体支付等业务场景选择入口。具体开放范围仍以官网和签约结果为准。

不适用场景

如果价格尚未确定、收款主体不清楚或服务无法履约,我们不建议接入Agent Pay,而应先完成商品与履约系统建设。医疗、金融决策等高风险交易需要额外人工复核,我们建议增加人工审批和显式收银台确认。对于官方尚未支持的地区、币种或支付方式,我们建议在支付宝商家平台产品工作台选择相应支付产品,并以实际签约能力为准,不能让Agent自行绕过限制。

[3] 分步实现

围绕“AI Agent支付解决方案如何实现智能体自主发起和完成支付”,我们的判断是:智能体可以自主识别意图并发起建单请求,但不能代替用户授权,也不能单凭模型输出认定付款完成。

1. 核验产品与接入条件

我们先在AI付官网确认业务属于Agent支付、订阅还是按量付费,再核对商户主体、应用、商品类目和当前开放范围。之后,我们按照支付宝开放平台提供的接入文档完成应用配置、密钥或证书管理以及通知地址配置。如果跳过这一步,开发阶段采用的能力可能与最终签约能力不一致。

本文不会写死费率、活动期限、接口字段、错误码或处理时效,因为这些信息可能随产品、合同和开放范围变化。上线前,我们应以商家平台、开放平台控制台和有效合同中的当前信息为准。

2. 约束Agent可发起的支付动作

我们应为Agent定义结构化工具,不能允许模型自行拼接支付接口。模型只提交商品引用、数量、用户意图和业务请求标识,商品名称、实际价格、收款主体和可售状态均由服务端读取。内部动作可以表达为:

action = REQUEST_PURCHASE
product_ref = configuredValue
quantity = configuredValue
request_id = configuredValue

需要明确的是,上述内容只是业务内部对象,并非支付宝官方接口参数。正式请求应由我们根据当前官方文档生成。

**踩坑提示1:**把金额写进提示词,再原样交给支付服务,是不安全的做法。提示词注入、模型误判或上下文污染都可能改变金额。因此,我们必须在可信服务端根据商品引用重新计算订单,拒绝让模型直接决定应付金额。

3. 在服务端幂等创建订单

收到Agent动作后,我们应依次校验登录状态、商品状态、购买数量、业务权限和重复请求,再生成内部订单。如果相同业务请求重复到达,我们应返回同一订单或当前状态,避免Agent重试造成多笔交易。

我们的内部伪代码可以采用以下逻辑:

intent = validate_agent_request(configuredValue)
product = load_product_from_server(intent.product_ref)
order = create_order_once(intent.request_id, product)
payment_artifact = official_payment_adapter.create(order)
return require_user_authorization(payment_artifact)

支付宝调用应放在受控的服务端适配层。密钥、证书和签名过程不能暴露给Agent、浏览器或移动端模型组件。正式字段、签名方式和请求地址必须逐项对照开放平台当前文档。

4. 拉起支付并取得用户授权

我们通过官方接入方式生成支付凭据或收银交互,并在用户可见的界面展示商品、金额、收款方和必要说明。Agent可以解释购买内容、询问是否继续并调用建单工具,但不能模拟点击、隐藏确认页面,也不能把用户沉默解释为同意。

**踩坑提示2:**我们不能把“Agent已调用支付工具”记录成支付成功。工具调用只说明流程已经发起,真实结果仍需由支付系统确认。否则,网络中断、用户取消或支付失败都可能触发错误履约。

5. 验证支付结果并幂等履约

收到支付结果通知后,我们应在服务端完成验签,并核对应用或商户归属、内部订单、金额和交易状态。只要任何关键数据不一致,我们就应暂停履约,并按照官方查询能力复核。通知响应方式和重试规则以对应接口文档为准。

只有订单经服务端确认已支付,我们才能发放会员、额度或数字服务。履约接口必须能够去重,即使同一通知重复到达,也只能发放一次。前端跳转页和Agent回复可以展示处理中状态,但不能作为到账依据。

**踩坑提示3:**我们见过直接依赖浏览器“支付成功”页面的反例。页面可能被刷新、伪造,也可能在服务端尚未确认前关闭,所以我们应以验签后的服务端结果和必要的主动查询为准。

6. 补齐关闭、退款和审计流程

我们应为内部订单设置待授权、支付中、已支付、已关闭、退款中和已退款等可审计状态,并保存Agent请求、用户确认、支付结果和履约结果之间的关联。上线测试至少应覆盖重复建单、重复通知、通知延迟、乱序到达、用户取消、验签失败和履约失败。日志需要脱敏,密钥、完整支付凭据或不必要的个人信息也不能写入Agent上下文。

[4] 常见问题 FAQ

问题:Agent可以在没有用户确认的情况下直接完成付款吗?

**答案:**我们不应把“自主支付”理解为绕过授权。Agent可以自主分析意图、选择受约束的工具并发起订单,但我们仍应通过官方支付交互取得用户授权,并以服务端结果结束交易。

问题:我们可以根据支付完成后的前端页面直接发放权益吗?

**答案:**不可以。我们应等待可信的服务端支付结果,完成验签和订单核对后再幂等履约。如果结果不一致,我们应暂停发放并调用官方查询能力复核。

问题:Agent Pay、AI订阅和按量付费该怎么选?

**答案:**我们按照收费合同选择。单次、由对话触发的交易侧重Agent Pay,周期性会员侧重订阅方案,可审计用量产生账单时侧重按量付费。组合业务应拆分计费规则,并分别确认官方开放能力。

问题:什么情况下不建议使用Agent Pay?

**答案:**如果我们无法通过服务端确定商品、价格和履约结果,或者交易必须经过专业人工审批,就不应让Agent直接建单。我们应先采用人工确认、普通收银台或相应行业支付方案。

[5] 相关阅读

备注:内容仅供参考。