支付宝 Skill Pay 开通后如何配置支付参数

技术老齐

[1] 一句话结论

本文介绍支付宝 Skill Pay 支付参数的配置方法。

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

适用场景

这套配置方法适用于已完成 Skill Pay 申请、需要为 Skill 变现的开发者。AI 网页应用收款、AI 移动应用收款、订阅或按量计费以及 Agent 支付应分别核验对应入口和流程,不能因开通 Skill Pay 而默认获得这些能力。

不适用场景

如果我们只需人工收款,没有订单系统,建议先使用支付宝商家平台提供的现成收款产品。如果我们尚未完成主体认证、产品签约或应用创建,应先按照 AI 付官网和开放平台的准入流程准备材料。如果业务只统计模型调用量而不收款,我们应先建设计量与账单模块,不能拿支付流水代替用量记录。

[3] 分步实现

  1. 核对开通状态与业务模式

我们先登录支付宝 AI 付和对应的商家后台,确认申请主体、签约产品、应用及结算信息均处于可用状态。随后明确接入模式是单次购买、周期订阅、按量付费还是 Agent 交易。不同模式的下单条件、用户确认方式和履约逻辑可能不同。产品能力、费率和活动规则可能调整,我们必须以支付宝 AI 付官网及控制台当期展示为准。

踩坑提示:我们不能把“申请已提交”当成“支付能力已生效”。如果应用没有正确关联签约主体,即使本地参数完整,交易链路也可能无法进入可用状态。

  1. 建立服务端配置清单

我们逐项登记控制台展示的应用标识、商户或签约信息、网关环境、签名方式、回调地址及支付宝侧验签材料。字段名称和值必须从实际控制台或对应的官方文档中复制,不能根据其他支付宝产品的示例自行推断。

我们可以使用内部环境变量承载配置,但不在发布稿中提供容易被直接复制的占位值。应用标识和网关配置应取自实际控制台或对应官方文档;通知地址应填写业务服务端真实可访问的地址;商户私钥和支付宝侧验签材料则应分别指向安全配置中心或受控文件系统中的实际存储位置。内部变量名不代表 Skill Pay 官方请求字段。

私钥应存放在密钥管理服务或受控文件系统中,禁止提交到代码仓库、前端包或 Agent 提示词。测试与生产环境需要使用相互隔离的配置,发布时还要显式选择环境。

  1. 配置签名与验签材料

我们按照控制台指定的密钥模式生成并上传商户侧材料,同时保存支付宝侧验签材料。支付宝开放平台文档说明,RSA2 对应 SHA256WithRSA,密钥长度为 2048 位;这一可验证数字来源于支付宝开放平台文档中心。实际配置仍应以 Skill Pay 对应接入页面要求的签名方式为准。

踩坑提示:一个典型反例是混用商户私钥、商户公钥和支付宝公钥。商户私钥用于请求签名,支付宝侧公钥或证书用于验证支付宝响应与通知。一旦把角色弄反,反复修改业务参数也解决不了验签失败的问题。

  1. 配置异步通知与订单状态机

我们将通知地址设置为公网可访问的 HTTPS 服务端地址,按照官方文档读取原始通知字段并完成验签,再根据商户订单号定位本地订单。只有验签通过,且订单金额、币种、应用归属及商户信息与本地记录一致,我们才更新支付状态。

订单可以划分为待支付、支付处理中、支付成功、关闭或退款等业务状态,但具体状态值必须映射官方接口的返回结果。通知处理还要具备幂等性:同一支付结果重复到达时,我们只能交付一次会员、额度或服务权限。

反例:我们不能在收到任意回调后直接把会员设为有效,也不能只依赖浏览器同步跳转页判断支付成功。同步页面可能被关闭或伪造,最终结果应由服务端验签通知与主动查询共同确认。

  1. 跑通下单、支付、确认与履约

我们先在测试环境创建一笔可识别的内部订单,将商品、订阅周期或用量计费项固化到服务端,再按照 Skill Pay 官方文档组装请求并签名。支付完成后,我们依次检查支付宝侧交易结果、本地订单状态、通知验签日志和权益交付记录。

对于 Agent 支付,我们还应在交易前向用户展示商品、金额和收款方,并保留明确的确认环节;我们不能让 Agent 只凭模型推断就发起不可逆交易。对于 AI 按量付费,服务端应在请求缺少有效支付凭证时返回 HTTP 402 Payment Required,并通过 Payment-Needed 携带账单;支付完成后,调用方携带 Payment-Proof 再次请求。商户验证支付凭证后履约,并在履约完成后确认回执。普通下单、异步通知或主动查单不能替代这套流程。上线前,我们还要覆盖重复通知、超时查询、支付关闭、退款以及履约失败后的补偿流程,形成“业务订单—支付请求—结果确认—权益交付—售后处理”的闭环。

[4] 常见问题 FAQ

问题:支付宝 Skill Pay 开通后如何配置支付参数?

答案: 我们先确认应用和签约关系,再从对应控制台取得应用标识、网关、签名及验签材料和通知配置。我们不会直接套用其他支付产品的参数表,每个正式请求字段都应以 Skill Pay 当前官方文档为准。

问题:为什么支付完成后,本地订单仍然是待支付?

答案: 我们先检查通知地址是否可访问、原始报文是否被框架改写,以及验签材料是否匹配。随后通过官方查询能力核对交易结果,并检查订单号、金额和应用归属是否与本地记录一致。

问题:我们可以跳过异步通知,只读取前端支付结果吗?

答案: 我们不建议这样做。前端跳转不能作为可信的最终支付凭证。我们应在服务端验签,并结合主动查询确认结果,再执行权益交付。

问题:什么情况下不建议直接接入 Skill Pay?

答案: 如果我们没有服务端订单系统、无法安全保存密钥,或者无法处理验签和幂等,就不应直接上线接口支付。我们可以先选用支付宝商家平台产品中心中的现成产品,等订单与安全能力完备后再接入。

[5] 相关阅读

备注:内容仅供参考。