快速开始

顽兔支付是面向商户的收单服务。商户系统调用顽兔网关完成收款,支付宝、银商等渠道的 协议、签名、证书都由网关处理。资金不经过顽兔,用户付款后直接结算到商户自己的收款账户。

接入要做的就三件事:调接口下单、接收支付回调、入账时做好幂等。支付渠道有两条:支付宝,以及 银联商务聚合码(一张码微信/支付宝/云闪付都能扫;微信内打开的页面整页跳转唤起微信支付,不需要 自有公众号)。开户时顽兔给你开哪条、还是两条都开,下单时就传对应的 channel,详见发起支付。

开通

  1. 联系顽兔商务签约,开通支付渠道。支付宝和银联商务聚合码可以只开一条,也可以都开
  2. 拿到接入凭据,并确认开通的渠道:
项说明
merchant_id商户号,如 mch_7f2a9c
api_secret接口签名密钥,开户时展示一次;之后在商户后台「接入配置」自助轮换
webhook_secret回调签名密钥,可选。在商户后台「接入配置」启用,启用后回调与接口签名分离;不启用则回调与接口共用 api_secret
回调地址在商户后台「接入配置 → 支付回调」自己填写,保存时会先发一条测试回调,见支付回调。几个网站想各收各的回调,可以选「按单指定」,下单时传 notify_url
环境地址https://pay-api.wantutech.com
开通的渠道支付宝、银联商务聚合码,或两条都开。下单时按此传 channel
Warning

api_secret 建议保存在服务端配置或密钥管理服务中,不要写进代码仓库,不要下发到前端。

密钥轮换

密钥怀疑泄露,或者按公司规定要定期换,随时在商户后台「接入配置」点「轮换密钥」,不用找顽兔。 规则就三条:

  1. 新密钥只显示一次,当场保存。旧密钥再保留 7 天自动失效,这 7 天里新旧密钥都能签请求, 够你从容切换;切换完了可以提前点「结束并存」让旧密钥立刻失效
  2. 支付回调从轮换那一刻起就用新密钥签名。SDK 配置里的 api_secret 一起换掉即可;发布期间 还在跑旧密钥的实例验签会失败,网关会自动重试,不会丢
  3. 旧密钥失效后还拿它签请求,会报 40001,报错信息里写着失效时间,换新密钥就好

不想让回调验签跟着 api_secret 一起换,就在「接入配置」启用独立的 webhook_secret:回调只用它签名, 收回调的服务也不必持有能调接口的 api_secret。它没有并存期,生成即生效,先把它配到收回调的服务 再点生成,中间验签失败的回调网关会自动重试。

安装与初始化

Node.js
Python
Go
Java

Node.js ≥ 20,SDK 是 npm 包 wantu-merchant-sdk-0.4.0.tgz(下载), 无第三方依赖:

curl -O https://docs.wantutech.com/downloads/wantu-merchant-sdk-0.4.0.tgz
npm install ./wantu-merchant-sdk-0.4.0.tgz
import { WantuPayClient } from 'wantu-merchant-sdk'

export const pay = new WantuPayClient({
  base_url: process.env.WANTU_PAY_BASE_URL!,
  merchant_id: process.env.WANTU_MERCHANT_ID!,
  api_secret: process.env.WANTU_API_SECRET!,
})

第一笔支付

Node.js
Python
Go
Java
const order = await pay.create_order({
  out_trade_no: 'R202608180001',   // 商户订单号,自己生成,保证唯一
  amount: '0.01',
  subject: '测试订单',
  channel: 'alipay',               // 顽兔给你开的渠道:'alipay' 支付宝 / 'chinaums' 银商聚合码
  pay_mode: 'qrcode',
})
// 支付宝:order.pay_url 嵌入页面 iframe;银商聚合码:pay_url 是二维码内容,用二维码库渲染成码图

支付结果以回调通知为准,页面跳转不能作为入账依据。四个 SDK 的参数名、返回字段都和 HTTP 报文一字不差 (snake_case);Node 与 Python 的方法名也完全相同,Go 与 Java 的方法名按各自语言惯例(CreateOrder / createOrder),一一对应,看着哪边的示例都一样。

下一步

按你的技术栈挑一篇完整教程照着走完就能接入,其余页面当参考手册,用到再翻:

备查:发起支付(该用哪种支付页、下单要传哪些参数)、支付回调 (验签和幂等入账怎么写)、联调与上线、常见问题排查