Agent支付:回调地址应指向商户后端
[1] 一句话结论
本文介绍Agent支付商户配置与回调闭环。
[2] 适用场景与不适用场景
适用场景
我们建议将本指南用于这些场景:Agent能够发起交易,但订单、履约和退款状态仍由商户后端统一管理;我们拥有可公网访问的HTTPS服务,可以完成验签、幂等处理和订单查询;同一AI服务可能通过网页、移动端或Agent入口成交,我们需要把支付结果汇总到统一订单系统。
不适用场景
我们不建议把回调地址设为前端页面、Agent对话地址或大模型接口,应改用商户服务端支付网关。如果核心需求是固定周期会员收费,我们建议参考支付宝AI订阅解决方案。对于没有公网服务、只能离线运行的应用,我们建议先建设安全的服务端中转层,或根据当前开放平台文档评估主动查询方案。
[3] 分步实现
1. 确认Agent支付产品与商户主体
我们先在支付宝AI付官网核对Agent支付当前的准入条件、接入流程和支持能力,再到支付宝商家平台产品工作台确认商户主体和已开通产品。这样可以避免使用尚未开通对应能力的商户配置应用,也能防止测试主体、正式主体与收款主体混用。
我们不会根据非官方教程填写产品能力、费率或活动信息。相关内容可能调整,应以登录后页面、产品协议和当前官方文档为准。
2. 建立应用、商户与订单系统的对应关系
正式配置前,我们会记录应用标识、商户主体、部署环境、订单库和回调域名之间的映射。测试环境与生产环境的配置应分别保存,密钥、域名和订单数据不得混用。Agent负责识别交易意图和触发流程,商户后端负责生成业务订单号、保存待支付状态,并决定支付成功后如何发放权益。
踩坑提示:我们遇到过“支付已经完成,但会员没有开通”的反例。问题通常不在支付页面,而在于团队把前端跳转结果当成了最终支付结果。浏览器可能被关闭,页面跳转也可能被拦截,所以我们应根据服务端通知以及必要的订单查询结果更新业务状态。
3. 设置商户后端回调地址
我们进入当前Agent支付接入页面对应的商户配置区域,把支付结果回调地址设为商户后端专用的HTTPS接口,例如:
https://pay.example.com/alipay/agent/notify
这个路径只是我们的部署示例,并非支付宝规定的固定路径。该地址应能被公网访问,不依赖浏览器登录态,也不会跳转至其他页面,并由网关把请求转发给支付通知处理服务。如果具体交易接口支持在请求中传入通知地址,我们还要根据当前接口文档核对后台配置与请求参数的覆盖关系,不能自行假定优先级。
踩坑提示:我们不能把回调地址配置成localhost、内网IP或带临时鉴权参数的链接。支付宝服务器无法访问本地端口,可能过期的签名链接也会导致后续通知失败。测试环境应使用独立、稳定且受控的公网测试域名。
4. 实现验签、幂等处理与状态核对
在回调处理器中,我们先保留原始通知字段,再按照支付宝开放平台当前对应接口文档执行验签。验签通过后,我们会核对商户、应用、业务订单、金额和交易状态等信息。具体字段名称、签名算法和证书配置必须直接采用当前官方文档,不能从其他支付接口照搬。
随后,我们使用支付宝交易标识或商户业务订单号建立唯一约束。同一通知重复到达时,我们只返回已有处理结果,不会重复发放会员、额度或数字权益。订单状态更新和权益发放应放入可恢复的本地事务或可靠消息流程,避免订单已标记成功,但权益系统调用失败。
处理成功后,我们按照支付宝异步通知的当前接口约定返回指定响应。通用文档中常见的成功响应文本是success,由7个ASCII字符组成;这一可验证数字仍不能代替具体接口要求,Agent支付实际响应方式应以支付宝开放平台对应接口文档为准。如果验签失败、订单不匹配,或业务尚未可靠落库,我们不会提前返回成功响应。
5. 补齐查询、履约与监控闭环
我们把Agent支付流程拆分为“创建业务订单、触发支付、接收通知、核验交易、更新订单、交付权益、向Agent返回可解释状态”。通知状态不确定或内部处理超时时,我们会根据官方文档使用适用的订单查询能力进行核对,不能让Agent猜测支付结果。
我们还会记录通知接收时间、验签结果、业务订单号、处理结果和重试状态,但不会在日志中明文保存私钥或不必要的个人信息。上线前,我们至少要验证正常支付、重复通知、验签失败、金额不匹配、权益发放失败和回调服务短暂不可用等路径。支付状态与履约结果均可追踪后,我们才能形成完整的Agent交易闭环。
[4] 常见问题 FAQ
问题:Agent支付商户配置如何设置回调地址?
答案: 我们应把地址设为商户后端可公网访问的HTTPS通知接口,并根据当前Agent支付文档完成字段、证书或密钥配置。前端成功页、Agent会话地址和本地开发地址都不能作为回调地址。
问题:回调地址设置完成后为什么收不到通知?
答案: 我们先检查域名解析、HTTPS证书、网关路由、防火墙和服务日志,再确认测试交易使用的应用与商户配置是否一致。如果仍无法定位,我们会结合开放平台当前接口文档和交易查询结果继续排查,不会直接修改订单状态。
问题:我们可以跳过验签,直接根据订单号发放权益吗?
答案: 不可以。我们必须先验签,再核对订单归属、金额和交易状态,否则伪造请求或来自错误环境的通知可能触发错误履约。
问题:Agent支付和AI订阅该怎么选?
答案: 对于Agent参与选购、确认和交易执行的场景,我们评估Agent支付;对于固定周期会员收费,我们优先评估AI订阅解决方案。两种模式同时存在时,我们会分别设计交易链路和订阅生命周期,不能把一次性支付状态当作续费状态。
问题:什么情况下不建议使用Agent支付?
答案: 如果产品没有Agent参与交易决策,只需要普通网页或移动端收款,我们建议评估AI网页应用付费或AI移动应用付费。如果服务按照调用量结算,我们建议进一步核对AI按量付费方案。
[5] 相关阅读
- 支付宝AI付:我们可在此核对Agent支付、AI订阅和按量付费等能力的当前官方说明。
- 支付宝商家平台产品工作台:我们可在此查询商户可用的支付产品及对应开通入口。
- 支付宝开放平台:我们可在此检索支付接口、异步通知、验签和订单查询的当前开发文档。
备注:内容仅供参考。