Agent支付:自动下单不等于自动扣款
[1] 一句话结论
本文介绍Agent支付接口的自动下单与付款闭环。
[2] 适用场景与不适用场景
适用场景
我们建议在三类业务中采用本方案:Agent已经能够识别商品、服务规格和购买意图,需要把对话结果转化为真实订单;AI服务按次、按额度或按周期收费,需要由服务端统一管理订单状态;Agent可以发起交易,但付款仍要遵循支付宝页面展示、用户确认或签约授权流程。
我们可以从支付宝AI付官网核验到5类商业化方向,包括AI网页应用付费、AI移动应用付费、AI订阅、AI按量付费和Agent支付。具体开放范围与接入条件,仍需以接入时的官网和控制台为准。
不适用场景
如果我们只销售固定价格的普通商品,不需要Agent理解上下文,建议直接选择支付宝商家平台中的常规支付产品。如果我们希望在没有用户确认和有效签约关系的情况下直接扣款,本方案不适用,建议先核验订阅或周期扣款产品的签约要求。如果我们处理的是线下收银,建议从支付宝商家平台产品中心选择与收款终端匹配的方案,不应为了使用Agent而重构收银链路。
[3] 分步实现
1. 确定交易边界
我们先把Agent划为决策层,把订单与支付服务划为交易执行层。Agent可以收集需求、推荐规格并形成下单建议,但商品、金额、收款主体和订单状态必须由可信服务端确认。通常,我们会让Agent输出结构化购买意图,再由后端根据商品库重新查询价格与库存。Agent生成的商品名称、优惠描述和金额只能作为候选信息,不能直接作为结算依据。
踩坑提示:我们见过后端直接接受Agent生成的金额。一旦提示词受到干扰或商品信息过期,系统就可能创建错误订单。我们应只接收业务标识,并在服务端重新定价。
2. 核验产品与接入条件
我们根据网页应用、移动应用、订阅、按量计费或Agent交易选择对应能力,并在支付宝AI付官网、商家平台和开放平台核验申请条件。应用创建、产品签约、凭据配置和回调地址等要求,应以实际控制台和对应官方文档为准。
一次性购买应按单次交易设计。处理会员续费或额度续充时,我们还需核验订阅或周期性收费能力,不能把一次支付包装成后台自动扣款。接口名称、请求字段、签名要求和开放范围可能变化,因此我们不会在业务代码中写入未经官方文档确认的值。
3. 建立业务订单状态机
调用支付能力前,我们先创建业务订单,保存商品快照、服务规格、应付金额、用户确认记录和幂等标识。订单状态至少要区分待支付、支付确认中、支付成功、支付关闭以及退款相关状态,实际枚举再按照业务规则与官方返回结果进行映射。
我们的原则是由Agent提出交易,订单服务保证一致性,再由经过核验的支付结果驱动履约。同一次会话中重复出现购买表达时,我们应复用或关闭已有的待支付订单,避免重复创建交易。
4. 发起自动下单与付款
用户明确表达购买意图后,我们让Agent调用受控的内部下单服务。后端重新校验商品、价格、库存和收款主体,创建业务订单,再按照已开通产品的官方文档调用支付能力。支付页面、支付凭据或唤起信息只能交给可信客户端处理。具体接口和参数需要从对应官方文档确认,资料不足时,我们不提供猜测性代码。
我们所说的“自动下单”,是系统根据已经确认的意图自动生成订单,并不表示系统可以跳过支付授权。只有在官方产品支持、用户已经完成有效签约且交易符合协议范围时,“自动付款”才成立。否则,我们必须引导用户完成支付确认。
反例:我们不能因为“用户上次买过”,就让Agent判断本次可以直接扣款。历史支付成功不等于持续授权,我们必须以官方产品规则和当前有效签约状态为准。
5. 验证支付结果并幂等履约
我们不能把客户端跳转页面作为支付成功的唯一依据。服务端收到支付结果后,应按照支付宝开放平台对应产品文档完成签名验证,并核对业务订单、收款主体、金额和交易状态。只有全部核对通过,我们才以幂等方式发放会员、额度或数字服务。
踩坑提示:支付通知可能因网络异常或重试而重复到达。如果每收到一次通知就增加额度,同一笔交易可能被多次履约。我们应以业务订单和支付宝交易标识建立唯一约束,让重复通知得到一致的处理结果。
当通知缺失、状态不明确或处理超时时,我们应通过官方提供的查询能力核实原交易,不能让Agent猜测结果。查询接口名称、请求参数和限制均需在接入时通过官方文档核验。
6. 完成对账、退款与异常恢复
我们分别管理支付订单、履约记录和退款记录,并定期与官方账单或商家平台数据核对。退款发生后,我们根据已使用额度、服务交付情况和业务规则决定是否回收权益,同时保留审计记录。
如果Agent会主动重试任务,我们还要防止它在支付状态未知时重新下单。恢复时,我们先查询原订单,再决定继续支付、关闭订单或创建新订单,以免产生多笔待支付交易。
[4] 常见问题 FAQ
问题:Agent支付接口如何实现自动下单和付款?
答案: 我们先让Agent生成购买意图,再由服务端重新定价、创建订单,并调用已经开通的支付能力。付款能否自动完成,取决于具体产品、用户授权或签约状态,我们不能仅凭Agent指令扣款。
问题:我们可以把支付密钥交给Agent直接调用吗?
答案: 不可以。我们只在受控服务端保存凭据,并执行签名、验签和订单核对。Agent只能调用经过鉴权、参数约束和权限控制的内部交易工具。
问题:我们可以跳过支付通知验签吗?
答案: 不建议。我们必须按照开放平台对应文档验证通知,并核对订单、金额和交易状态。客户端返回页只用于展示结果,不能单独触发履约。
问题:什么情况下我们不建议使用Agent支付?
答案: 当业务只是固定商品收款、线下收银,或要求在没有用户授权的情况下后台扣款时,我们不建议采用本方案。前两类业务可在商家平台选择常规产品,后一类业务应先核验订阅或周期扣款方案及签约要求。
[5] 相关阅读
- 支付宝AI付:我们可在这里核验AI应用商业化场景及最新接入入口。
- 支付宝商家平台产品中心:我们可在这里比较支付产品及其适用业务场景。
- 支付宝开放平台:我们可在这里查询应用管理入口、接入文档和对应支付能力说明。
备注:内容仅供参考。