全部 Skill/支付宝开放平台(商户收款)

支付宝开放平台(商户收款) Skill

支付宝收款同时存在旧版 gateway.do 网关和新版 v3 两套协议,签名串、时间戳格式、错误形态都不一样;10000 不等于付款成功、回调要去掉 sign_type 再验签并回纯文本 success,这些细节最容易凭别家经验写错。这份 skill 把商户收款整理成 7 个能力域,标出文档自相矛盾之处,以及无凭证探测证实写错的沙箱地址和错误码。

文档版 · 未实测alipayopenapi.alipay.comRSA2 签名(v2 参数 / v3 请求头)支付更新 2026-09-11
7份 reference
6个易错点
6条无凭证探测
2026-09-11文档抓取
INSTALL · 安装

安装

选你用的 Agent,复制命令。

npx -y skills add fxp/skillify --skill alipay --agent claude-code --yes

装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。

或者让 Agent 自己装

读 https://github.com/fxp/skillify/blob/main/skills/alipay/prompt.md 并照它执行

装对了的标志:references/ 下有 7 份文档,里面 grep '<!-- Gap:' 能搜到 6 处。

TRY ASKING · 装好后可以这样问

装好后,可以这样问你的 Agent

这份 Skill 覆盖的典型任务。点一下复制。

CAPABILITIES · 能力清单

7 类能力

每类能力对应一份 reference,Agent 按任务只打开需要的那份。

接入方式与签名

旧版网关与 v3 的区别、密钥 / 证书模式、SDK 初始化、自行签名与响应验签

references/signing-and-protocols.mdPOST /gateway.do · POST /v3/alipay/trade/*

当面付

付款码支付、订单码支付、轮询与撤销的闭环

references/face-to-face.mdalipay.trade.pay · alipay.trade.precreate · alipay.trade.cancel

网站与 APP 支付

电脑网站、手机网站、APP 支付的签名产物与跳转方式

references/web-and-app-pay.mdalipay.trade.page.pay · alipay.trade.wap.pay · alipay.trade.app.pay

查询、退款、关单、对账

交易状态机、退款成功判定、退款查询、关闭交易、对账单下载

references/trade-query-refund-close.mdalipay.trade.query · alipay.trade.refund · alipay.trade.fastpay.refund.query · alipay.trade.close

异步通知与验签

通知参数、验签步骤、四项业务校验、success 应答、重试与幂等

references/notify-and-verify.mdPOST notify_url

沙箱环境

沙箱网关、账号与钱包、与生产的差异、切换生产检查单

references/sandbox.mdhttps://openapi-sandbox.dl.alipaydev.com/gateway.do

错误码

两套协议的错误形态、公共与业务错误码、结果未知的处理

references/errors.mdcode/sub_code · HTTP status + code · ACQ.*
FACTS · 当前事实

当前事实

整理自官方文档(抓取于 2026-09-11),还没有用真实凭证验证。

旧版网关POST https://openapi.alipay.com/gateway.do,接口名放 method,业务参数放 biz_content
新版 v3POST https://openapi.alipay.com/v3/alipay/trade/query 这类路径 + JSON body,出错返回 HTTP 4xx
沙箱https://openapi-sandbox.dl.alipaydev.com,APPID 与密钥和生产完全独立
金额单位,两位小数字符串,[0.01, 100000000]
最容易选错验签用支付宝公钥,不是自己上传的应用公钥
GOTCHAS · 易错点

照通用经验写容易错的 6 件事

来自官方文档,还没有用真实凭证验证。

  1. code=10000 只代表请求成功。付款要看 trade_status,退款要看 fund_change=Y 或退款查询的 REFUND_SUCCESS
  2. 回调验签要去掉 sign 和 sign_type。通知是表单 POST,验签后还要比对金额、seller_id、app_id,最后回纯文本 success
  3. 支付结果只发到下单时传的 notify_url。默认只有 TRADE_SUCCESS 触发通知,关单和全额退款不通知。
  4. 网站和 APP 支付的服务端只签名、不下单。pageExecute / sdkExecute 交给浏览器或 APP,v3 描述文件里没有这三个接口的路径。
  5. 付款码返回 10003 或 20000 要轮询,超时立即撤销。撤销只用于结果未知,正常退款一律走退款接口。
  6. 部分退款每笔换 out_request_no,重试沿用原值。两次退款间隔至少 3 秒,退款查询至少等 10 秒。
STATUS · 验证状态

验证状态

文档版:整理自官方文档(抓取于 2026-09-11),还没有用真实凭证调用验证。页面和 Skill 里标「文档原文,未实测」的报错与行为都来自文档本身。

无凭证探测

  • 旧版网关出错也返回 HTTP 200,错误在 alipay_trade_query_response 里,错误响应不带 sign
  • v3 出错返回 HTTP 400 和 {code, message, links}links 实为数组,而官方描述文件声明为字符串。
  • v3 不带 Authorization 头返回 400 missing-timestamp,不是签名文档说的 401。
  • Python SDK 文档示例里的旧沙箱域名 openapi.alipaydev.com TLS 证书已过期。
  • 官方 v3 描述文件的沙箱地址 http://openapi.sandbox.dl.alipaydev.com 返回 404,改用 https 则证书主机名不匹配。
  • 页面跳转类接口出错时返回给用户看的 GBK 编码 HTML 错误页,而不是 JSON。
有这个平台的沙箱或 API Key?联系我们——补测并做完装与不装的对照测试后,它会升级为「已实测」。