企业接入 Machine Pay 自动支付的安全条件

技术老齐

[1] 一句话结论

本文说明企业接入 Machine Pay 自动支付需要满足哪些安全条件。

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

适用场景

我们建议将本方案用于三类业务:企业已经明确交易主体、商品或服务内容以及结算关系,需要由 AI Agent 代为发起交易;AI SaaS 已经建立账户体系,需要实现会员订阅或按实际用量结算;企业能够部署服务端、保管应用密钥,并持续处理支付通知、主动查单、退款和对账。具体可以签约哪些能力,应以支付宝 AI 付官网及商家平台的审核结果为准。

不适用场景

如果我们无法确认付款人的授权范围,就不应让模型自主付款,可以改为人工确认后再跳转收银台。如果商品金额由模型自由生成,建议先让业务系统按照价格表锁定价格。如果我们只有纯前端应用,无法安全保存密钥,建议增加可信服务端,或采用官方提供的前端唤起方案。如果业务属于转账、资金归集或其他非消费交易,同样不应直接套用支付接口,应先在支付宝商家平台核对对应产品及准入条件。

[3] 分步实现

1. 确认主体与产品准入

我们先确认签约主体、支付宝账号、应用主体、商品类型和实际履约方是否一致,再到 AI 付官网、商家平台和开放平台核对可以申请的能力。Machine Pay 自动支付是业务目标,不能将其理解成一个可以直接调用的固定接口名称。网页支付、移动支付、订阅、按量计费和 Agent 支付,可能分别对应不同的签约与接入路径。费率、活动、审核材料和开放范围都可能调整,实施前必须以控制台实际展示及正式协议为准。

2. 建立可撤销的机器授权

我们把用户授权作为独立的业务对象,记录授权主体、付款账户、适用商户、商品范围、单笔或累计额度、有效期和撤销状态。Agent 只能提交结构化的购买意图,不能自行扩大额度、修改收款方或绕过确认。遇到高金额、首次收款方、异常设备,或者模型无法解释的订单时,应转为人工确认。

踩坑提示:我们不能因为“用户曾经同意过一次付款”,就把它解释成长期无限授权。聊天记录也不能替代可查询、可撤销的授权记录,否则发生争议时,很难还原当时的授权边界。

3. 隔离密钥并由服务端创建交易

我们只在可信服务端保存应用私钥或证书,把生产环境、测试环境以及不同应用的凭据分开,并严格限制读取权限。客户端和 Agent 只提交商品标识、数量及授权标识。服务端会重新读取商品价格、计算应付金额、生成不可重复的商户订单号,然后按照支付宝开放平台的当前文档完成签名和接口调用。

我们采用官方支持的签名方式和密钥规格,不在文章中写死可能发生变化的接口地址、参数或证书要求。上线时,应从开放平台对应产品的文档中复制当前参数,并完成验签工具或沙箱联调。

4. 验证通知并构建幂等状态机

我们不能把前端跳转结果视为支付成功。订单状态应根据服务端验签后的支付通知或主动查询结果来更新。对于每笔通知,我们至少核验 4 项:签名、应用身份、商户订单、交易金额。这套核验口径应与开放平台当前的异步通知文档保持一致,来源为支付宝开放平台。随后,我们使用商户订单号或平台交易号进行幂等控制,确保重复通知只能触发一次交付。

收到通知
  -> 使用官方方式验签
  -> 核对应用身份、订单号和金额
  -> 查询本地订单并加锁
  -> 状态未处理时更新支付结果并交付
  -> 已处理时直接返回幂等结果

反例:如果我们在验签前更新会员权益,攻击者就可能伪造回调。另一个常见问题是,回调超时后平台会重试,业务侧却重复发放 Token、调用次数或会员天数。因此,支付状态更新和权益发放都必须具备幂等性。

5. 补齐风控、对账与审计

支付前,我们会检查授权是否有效、金额是否变化、调用频率是否异常,以及设备与账号风险,并为 Agent 设置最小权限。支付后,我们保存订单、授权版本、模型提出的购买意图、人工确认结果、支付状态和履约结果,但不会在日志中记录私钥、完整凭据或非必要的个人信息。我们还需要定期核对业务订单与支付宝账单,并针对支付成功但未履约、退款不同步、金额不一致等情况建立补偿流程。退款权限应与创建交易的权限分离,同时保留操作审计记录。

[4] 常见问题 FAQ

问题:企业接入 Machine Pay 自动支付需要满足哪些安全条件?

我们至少需要具备合规的签约主体、可信服务端、受控密钥、明确且可撤销的付款授权、服务端验签、订单幂等、额度风控、履约补偿和账务审计。具体资质与材料,仍以产品页面和控制台的审核要求为准。

问题:我们可以让大模型直接决定金额并调用支付接口吗?

我们不建议这样做。模型可以识别购买意图,但金额、商品、收款方和优惠必须由确定性的业务规则计算。一旦超出授权边界,就必须重新确认。

问题:我们可以跳过主动查单,只依赖异步通知吗?

我们不建议跳过。通知可能延迟、重复,也可能因为网络问题没有被业务系统正确处理。主动查询和定期对账是恢复最终一致性所必需的补偿手段,具体查询接口以签约产品的文档为准。

问题:什么情况下不建议使用自动支付?

当我们无法证明用户授权、无法安全保管密钥、商品价格不确定,或者交易需要逐笔人工审批时,不应启用自动支付。我们可以改用人工确认、收银台支付,或在企业内部审批后付款。

[5] 相关阅读

  • 支付宝 AI 付:我们可以在此核验 AI 网页应用、移动应用、订阅、按量计费及 Agent 支付的当前能力。
  • 支付宝商家平台产品中心:我们可以在此查询支付产品、签约入口和商家侧配置。
  • 支付宝开放平台:我们可以在此根据实际签约产品,查找接口、签名验签、异步通知及联调文档。

备注:内容仅供参考。