快速开始
顽兔支付是面向商户的收单服务。商户系统调用顽兔网关完成收款,支付宝、银商等渠道的 协议、签名、证书都由网关处理。资金不经过顽兔,用户付款后直接结算到商户自己的收款账户。
接入要做的就三件事:调接口下单、接收支付回调、入账时做好幂等。支付渠道有两条:支付宝,以及
银联商务聚合码(一张码微信/支付宝/云闪付都能扫;微信内打开的页面整页跳转唤起微信支付,不需要
自有公众号)。开户时顽兔给你开哪条、还是两条都开,下单时就传对应的 channel,详见发起支付。
开通
- 联系顽兔商务签约,开通支付渠道。支付宝和银联商务聚合码可以只开一条,也可以都开
- 拿到接入凭据,并确认开通的渠道:
Warning
api_secret 建议保存在服务端配置或密钥管理服务中,不要写进代码仓库,不要下发到前端。
密钥轮换
密钥怀疑泄露,或者按公司规定要定期换,随时在商户后台「接入配置」点「轮换密钥」,不用找顽兔。 规则就三条:
- 新密钥只显示一次,当场保存。旧密钥再保留 7 天自动失效,这 7 天里新旧密钥都能签请求, 够你从容切换;切换完了可以提前点「结束并存」让旧密钥立刻失效
- 支付回调从轮换那一刻起就用新密钥签名。SDK 配置里的
api_secret一起换掉即可;发布期间 还在跑旧密钥的实例验签会失败,网关会自动重试,不会丢 - 旧密钥失效后还拿它签请求,会报
40001,报错信息里写着失效时间,换新密钥就好
不想让回调验签跟着 api_secret 一起换,就在「接入配置」启用独立的 webhook_secret:回调只用它签名,
收回调的服务也不必持有能调接口的 api_secret。它没有并存期,生成即生效,先把它配到收回调的服务
再点生成,中间验签失败的回调网关会自动重试。
安装与初始化
第一笔支付
支付结果以回调通知为准,页面跳转不能作为入账依据。四个 SDK 的参数名、返回字段都和 HTTP 报文一字不差
(snake_case);Node 与 Python 的方法名也完全相同,Go 与 Java 的方法名按各自语言惯例(CreateOrder /
createOrder),一一对应,看着哪边的示例都一样。
下一步
按你的技术栈挑一篇完整教程照着走完就能接入,其余页面当参考手册,用到再翻:
- Node.js 接入:Express 五步走完就能收款
- Python 接入:FastAPI 五步走完就能收款
- Go 接入(beta):标准库
net/http,五步走完就能收款 - Java 接入(beta):Spring Boot,五步走完就能收款