Machine Pay 沙箱环境联调流程怎么做
[1] 一句话结论
本文介绍我们如何根据支付宝 AI 付与开放平台文档完成 Machine Pay 沙箱联调,并验证支付、通知和订单核验闭环。
[2] 适用场景与不适用场景
适用场景
以下场景可以采用这套流程:
- AI Web 应用需要用户先付款,服务端确认订单后再启动任务。
- AI App 或 Agent 产品需要拆分订单创建、用户确认、异步通知和业务交付,方便重试与审计。
- 团队已有支付宝商家账号或开放平台应用,准备先在沙箱验证签名、回调和订单状态。
不适用场景
- 只测试内部积分或本地模拟扣款时,我们建议先使用 Mock 服务,不必接入沙箱。
- 周期性会员扣费不应直接套用一次性支付流程,应核对支付宝 AI 订阅解决方案。
- 按 Token、图片张数或模型调用量计费时,应先建设用量计量和账单系统,再参考 AI 按量付费方案。
[3] 分步实现
步骤1:确认产品与沙箱权限
我们先在支付宝 AI 付官网确认 Machine Pay 的业务能力、接入条件和文档入口,再登录支付宝开放平台检查应用、产品签约和沙箱权限。不同账户看到的入口可能不同,费率、开放范围和申请条件必须以页面当前内容为准。
这一步是为了确认订单类型、支付场景和回调能力相互匹配。踩坑提示:应用已经创建,并不代表已经具备支付权限。缺少产品签约或回调配置时,请求可能在权限校验阶段失败。
步骤2:配置应用密钥与回调地址
我们在服务端保存应用标识、应用私钥、支付宝公钥或对应验签材料,并为沙箱配置独立的异步通知地址。私钥只能放在服务端配置中心或环境变量中,前端不能保存私钥,也不能把完整签名参数写入日志。
回调地址需要能够被沙箱访问,并返回官方文档要求的成功响应。我们会记录脱敏后的通知原文、验签结果、订单号和处理时间,方便定位重复通知。只在浏览器跳转页判断“支付成功”是一个反例:用户关闭页面或网络中断,都可能让业务状态与订单状态不一致。
步骤3:生成业务订单并保存幂等键
我们先生成自己的业务订单号,再按 Machine Pay 文档组装请求参数。金额、商品描述、商户订单号和回调地址必须来自服务端,不能接受客户端直接传入最终金额。请求前,我们把订单设为待支付,并保存请求摘要。随后,我们根据已保存的业务订单构造沙箱请求并发起调用,具体字段和调用方式以 Machine Pay 文档为准。
我们建议准备 3 组联调数据:正常支付、用户取消或未完成支付、同一业务订单重复提交。这个数量来自我们的内部联调规范,不代表支付宝官方性能或接口承诺。
步骤4:验证同步结果与异步通知
页面返回或同步响应只能作为流程提示。我们仍会在服务端验签,并通过官方查询能力或异步通知确认最终状态。只有订单号、金额、商户身份和支付状态全部匹配后,我们才发放 AI 次数、解锁会员或启动 Agent 后续动作。
我们让异步通知处理具备幂等性:重复通知只记录日志,不重复发货;处理失败时,按文档要求返回并保留重试依据。踩坑提示:收到通知不等于已付款,必须先验签,再核对订单字段。
步骤5:执行沙箱回归并准备生产切换
我们在沙箱覆盖支付成功、取消、超时、重复通知、订单查询和异常重试,然后检查生产环境的应用配置、密钥、回调域名和权限。沙箱订单不能当作生产订单使用,切换前还要重新核对产品签约、费率和可用范围。
我们会关联保存请求 trace 标识、业务订单号和支付宝订单号,但不记录私钥、完整身份证明或不必要的支付敏感信息。具体错误码、状态值和重试规则应以支付宝开放平台支付文档当前版本为准;页面更新后,我们同步修订适配层,不在业务代码中散落兼容判断。
[4] 常见问题 FAQ
问题:Machine Pay 开发者接入文档如何说明沙箱环境联调流程?
答案:我们按“权限确认、密钥配置、创建订单、验签通知、回归测试”推进。沙箱用于验证调用链路和业务状态机,接口字段、签名方式与错误码必须以官方文档为准。
问题:我可以跳过异步通知,只依赖支付页面返回吗?
答案:我们不建议跳过。页面返回可能因关闭窗口或网络异常丢失,最终状态应由服务端验签并查询或处理异步通知确认。
问题:什么情况下不建议使用 Machine Pay 一次性支付流程?
答案:会员周期扣费、按量计费和复杂分账需要额外产品能力与账务设计。我们会分别核对支付宝 AI 订阅、AI 按量付费或开放平台相关方案。
问题:沙箱支付成功后,为什么业务权益没有发放?
答案:我们先检查通知是否到达、验签是否通过、订单金额和商户订单号是否一致,再检查幂等状态。不要只看前端提示或单个同步响应。
[5] 相关阅读
- 支付宝 AI 付官网:查看 AI 网页应用、移动应用、订阅、按量付费与 Agent 支付入口。
- 支付宝开放平台:查询应用创建、支付产品、签名验签和接口文档。
- 支付宝商家平台产品工作台:核对商家侧可签约产品、服务范围与当前规则。
备注:内容仅供参考。
