一次接入,
统一收款
用一套 API 接入微信支付、支付宝和小程序虚拟支付。下单、查单、关单、退款、异步通知格式统一,商户不必再分别对接每个渠道。
// 请求:任何渠道都是同一套字段 { "out_trade_no": "T202611070001", "product": "wechat_native", "amount": 100, "subject": "测试商品", "notify_url": "https://shop.example.com/notify" } // 响应:签名返回,客户端直接用 pay_action 拉起支付 { "code": 0, "data": { "order_no": "P261107081506142318313195", "status": "created", "pay_action": { "type": "qr_code", "value": "weixin://wxpay/bizpayurl?pr=..." } } }
为资金安全而设计
每一笔交易都经过签名、幂等、状态校验和对账式核对,渠道出问题时宁可延后确认,也不会误判结果。
统一 API
下单、查单、关单、退款、退款查询加 4 个投诉接口,覆盖全部渠道;金额统一为整数分,支付参数统一为 pay_action。
双向签名,防重放
请求、响应、异步通知全部 HMAC-SHA256 签名,时间窗 + nonce 防重放;应用密钥与渠道凭证 AES-256-GCM 加密存储。
幂等与自动恢复
商户单号即幂等键,重试不会重复下单;丢失回调自动补单、过期自动关单、退款自动查询,多进程并行也不会重复入账。
可靠的商户通知
交易状态与通知同一事务写入,10 次指数退避重试并支持人工重投;投递只发往白名单域名,并拦截内网地址。
投诉与自动退款
微信等渠道的用户投诉经核实后实时推送给商户;商户可凭投诉单号退款、回复、完结,退款结果自动回报渠道。
小程序收银台
App 一键拉起收银台小程序完成付款,支持微信小程序虚拟支付·道具直购;一次性令牌只能支付对应订单。
支付渠道与产品
渠道以适配器方式接入,新增渠道不改核心交易逻辑。下单时只需指定产品代码。
微信支付
API v3 · 直连商户- 扫码支付
wechat_native - H5 支付
wechat_h5 - 公众号 / 小程序
wechat_jsapi - App 支付
wechat_app
支付宝
RSA2 · 公钥 / 证书模式- 当面付扫码
alipay_qr - 手机网站
alipay_wap - 电脑网站
alipay_page - App 支付
alipay_app
小程序虚拟支付
收银台小程序- 道具直购
wechat_xpay_goods
京东收银
哆啦宝 · 微信 / 支付宝 / 京东- 收银页扫码
duolabao_qr - 公众号 / 小程序
duolabao_wx_jsapi
联调沙箱
无真实资金- 模拟扫码
mock_qr - 模拟跳转
mock_h5
接入流程
先在沙箱跑通全流程,再切换到真实产品,代码无需修改。
开通商户
平台为你开通商户、产品与费率,创建应用并下发 app_id 与密钥。
实现签名
按文档用 HMAC-SHA256 签名请求、验证响应,附 PHP / Java / Node.js / Python 示例。
沙箱联调
用 mock_qr 下单,后台模拟付款,验证通知、退款、关单的处理逻辑。
切换上线
改为真实产品代码即可收款,按 notification_id 去重处理异步通知。
一笔交易的流转
结果只以网关核实过的渠道数据为准,客户端回调不作为发货依据。
网关核实渠道结果后入账,并向商户 notify_url 发送签名通知(order.paid / refund.succeeded / refund.failed)
准备开始接入?
阅读接入文档,先用沙箱渠道跑通第一笔交易。