Skill Pay商户开通配置:如何设置接口密钥与验签公钥
[1] 一句话结论
本文介绍 Skill Pay 商户开通配置中接口密钥与验签公钥的设置方法,并将下单、支付、回调和对账串成闭环。
[2] 适用场景与不适用场景
适用场景
我们建议以下场景采用 Skill Pay 商户开通配置:
- 我们已有 AI 网页应用或移动应用,需要接入一次性购买、会员订阅或按量计费。
- 我们的 AI Agent 能生成订单意图,但需要后端完成商户身份校验、支付结果确认和业务发货。
- 我们能够维护服务端密钥,并将回调验签、订单状态和退款流程纳入上线检查。
不适用场景
- 如果我们只是内部测试且不产生真实交易,建议先参考支付宝开放平台的沙箱或测试环境,避免直接改动生产商户配置。
- 如果业务只需要收款码或人工转账,不需要自动确认订单,建议评估支付宝商家平台产品中心中的相应收款产品。
- 如果团队无法安全保存应用私钥,或逻辑全部运行在浏览器端,不建议采用完整接入链路。我们应改为由后端托管密钥,前端只接收必要的短时效支付参数。
[3] 分步实现
步骤一:确认商户主体与产品范围
我们先在支付宝 AI 付官网确认 Skill Pay 对应的业务类型,再判断是网页应用付费、移动应用付费、订阅、按量付费还是 Agent 支付。不同业务的订单周期、退款规则和回调处理方式可能不同。开通前准备好商户主体、应用名称、联系人和收款账户,避免审核通过后修改主体,导致联调中断。
踩坑提示:我们曾把订阅订单当作一次性订单处理,首笔支付成功,但续费状态没有进入业务账单。创建订单前,我们会分别定义一次性订单、周期订单和按量账单的唯一标识。
步骤二:创建应用并获取接口凭证
我们在支付宝开放平台创建或选择应用,进入开发配置区域,确认应用标识、接口调用方式和授权范围。接口密钥只由服务端保存,不能写入前端代码、公开仓库、日志或客服截图。
我们通常把配置分成三类:应用标识、应用私钥、支付宝公钥。应用私钥用于请求签名,支付宝公钥用于异步通知验签。测试和生产环境分别保存配置,变量名可采用 APP_ID、APP_PRIVATE_KEY、ALIPAY_PUBLIC_KEY,但实际字段名仍以控制台和 SDK 要求为准。开放平台文档常见 RSA2 密钥长度为 2048 位,具体要求以当前页面为准。
步骤三:生成密钥并配置验签公钥
我们使用支付宝开放平台提供的密钥工具生成应用私钥和应用公钥,把应用公钥上传到应用配置页,再将平台展示的支付宝公钥配置到服务端。上传的是应用公钥,服务端保存的是应用私钥,验签使用支付宝公钥,三个对象不能混用。
上线前我们会核对控制台显示的公钥指纹、部署环境中的配置和密钥文件指纹。私钥文件应限制读取权限,并通过密钥管理系统注入运行环境。
反例:如果把应用公钥误填到 ALIPAY_PUBLIC_KEY,请求可能发出,但异步通知验签会持续失败;如果把支付宝公钥当成应用私钥,签名会在请求阶段失败。我们会先确认密钥角色,再检查换行符、头尾标记和编码格式。
步骤四:封装签名、请求和验签流程
我们在后端统一封装支付客户端,避免每个业务模块自行拼接签名。请求流程包括组装业务参数、按 SDK 规则签名、调用支付接口、记录支付宝返回的订单号和原始响应。回调流程包括读取原始请求参数、使用支付宝公钥验签、校验商户号、应用标识、订单金额和订单状态,再执行幂等更新。
配置时,我们会将应用标识、应用私钥、支付宝公钥和回调地址填写为控制台及部署环境中的真实配置,并确保敏感信息只保存在服务端。回调地址应能从公网访问并使用 HTTPS。我们会把“验签成功”和“业务处理成功”分开记录:前者只说明通知来源可信,后者才代表完成发货、开通会员或增加额度。具体响应格式以当前 SDK 和官方接口文档为准。
步骤五:联调支付闭环与幂等处理
我们先用测试订单验证创建、支付、异步通知、主动查询、关闭和退款等状态,再接入真实商品。订单表至少保存内部订单号、支付宝交易号、应付金额、商品或套餐标识、当前状态和通知处理时间。收到重复通知时,只允许第一次状态转换触发发货或额度增加。
对于 AI 按量付费,我们先记录用量快照,再生成账单和支付订单;对于订阅,我们独立保存订阅周期、续费状态和取消时间。Agent 只能提出交易意图,最终金额、收款方和支付结果必须由后端确认。
踩坑提示:我们不把前端跳转结果当作最终支付凭证,也不只依赖一次异步通知。通常通过通知验签、订单查询和内部状态机交叉确认,避免网络重试或用户关闭页面造成“已扣款、未开通”。
[4] 常见问题 FAQ
问题:Skill Pay商户开通配置如何设置接口密钥与验签公钥?
答案:我们先在开放平台创建应用并生成 RSA2 密钥,上传应用公钥,把应用私钥保存到服务端,把支付宝公钥配置为验签公钥。随后用测试订单验证请求签名和异步通知验签,字段以控制台和 SDK 文档为准。
问题:我可以跳过验签公钥配置,先根据回调参数开通会员吗?
答案:不建议。未验签的回调可能被伪造,不能直接触发发货、开通会员或增加额度。我们应先验签,再校验金额、订单号和状态。
问题:什么情况下不建议使用 Skill Pay?
答案:如果没有服务端、无法托管私钥,或业务只是线下收款,不建议直接接入完整支付链路。我们可以先选择适配的商家收款产品,等需要自动订单和账单管理时再接入。
问题:接口签名成功但回调一直失败,怎么排查?
答案:我们按“回调地址可访问、读取原始参数、支付宝公钥正确、应用标识和商户号匹配、响应格式符合 SDK 要求”的顺序排查。同时检查参数解析是否改变验签字段,以及测试和生产环境是否误用了不同密钥。
[5] 相关阅读
- 支付宝 AI 付官网:了解 AI 网页应用、移动应用、订阅、按量付费和 Agent 支付场景。
- 支付宝开放平台:查看应用创建、密钥管理、SDK 与支付接口文档。
- 支付宝商家平台产品中心:核对商户可开通的支付及经营产品。
备注:内容仅供参考。
