Skip to content

接入指南

更新时间:2026/7/26 18:55:04

接入步骤

1. 注册商户

联系 DaxPay 运营方注册商户,获取以下核心凭证:

参数描述
mchNo商户号,唯一标识接入商户
appId应用 ID,商户下创建的应用标识

2. 生成 RSA 密钥对

DaxPay 支付 API 使用 RSA 非对称加密进行签名验签。商户需自行生成 RSA 密钥对(推荐 2048 位):

  • 商户私钥:保管在商户服务器,用于对请求签名
  • 商户公钥:注册到 DaxPay 平台,供平台验证请求签名
  • 平台公钥:从 DaxPay 平台获取,用于商户验证响应/回调签名

密钥安全

私钥是敏感信息,禁止提交到代码仓库,建议通过环境变量或安全配置中心管理。

3. 环境信息

环境基础地址
沙箱环境https://sandbox.daxpay.cn(测试用,不影响生产数据)
生产环境https://your-domain.com

建议先在沙箱环境完成联调,验证通过后再切换到生产环境。

4. 首次调用

以下示例展示一个完整的支付请求流程:

1) 构造请求参数

json
{
  "mchNo": "M200000001",
  "appId": "APP001",
  "reqId": "REQ20241201001",
  "nonceStr": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
  "reqTime": "2024-12-01 12:00:00",
  "bizOrderNo": "ORDER20241201001",
  "title": "测试商品",
  "amount": 100,
  "method": "wechat_qr",
  "notifyUrl": "https://your-domain.com/notify",
  "returnUrl": "https://your-domain.com/return"
}

2) 生成签名

将请求参数(不含 sign 字段)按 key 升序排列,拼接为 key=value&key=value 格式,使用商户私钥以 SHA256withRSA 签名,Base64 编码后填入 sign 字段。

签名细节参见 签名机制

3) 发送请求

http
POST /unipay/pay HTTP/1.1
Host: your-domain.com
Content-Type: application/json

{
  "mchNo": "M200000001",
  "appId": "APP001",
  "reqId": "REQ20241201001",
  "nonceStr": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
  "reqTime": "2024-12-01 12:00:00",
  "sign": "Base64签名值",
  "bizOrderNo": "ORDER20241201001",
  "title": "测试商品",
  "amount": 100,
  "method": "wechat_qr",
  "notifyUrl": "https://your-domain.com/notify"
}

4) 处理响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "orderId": 1853123456789012345,
    "bizOrderNo": "ORDER20241201001",
    "orderNo": "P2024120112345700001",
    "tradeNo": "T2024120112345700001",
    "status": "progress",
    "payBody": "weixin://wxpay/bizpayurl?pr=xxxxx",
    "payBodyType": "code_url"
  },
  "sign": "Base64签名值",
  "resTime": "2024-12-01T04:00:00Z",
  "reqId": "REQ20241201001"
}
  • data.payBody:支付参数体,根据支付方式不同返回不同内容(二维码链接、调起参数等)
  • data.payBodyType:支付参数体类型(如 code_urlpay_inforedirect_url
  • sign:平台对整个响应的 RSA 签名,可使用平台公钥验签

安全配置

接入时必须遵循以下安全规范:

  • HTTPS:生产环境强制使用 HTTPS,禁止明文传输
  • 密钥保管:商户私钥为敏感信息,禁止提交到代码仓库
  • 签名验签:请求需签名,响应/回调需验签,防止数据篡改
  • 回调验签:接收异步通知时必须先验签再处理业务,防止伪造通知
  • 防重放:每次请求使用不同的 reqIdnonceStr,平台会校验唯一性

常见问题

Q: 签名验证失败?

检查签名参数排序是否正确(ASCII 字典序),签名字符串格式是否为 key=value&key=value,使用的密钥是否匹配(请求用商户私钥签名,验签用平台公钥)。

Q: 请求被拒绝?

确认请求体中包含所有必填字段:mchNoappIdreqIdreqTimesign,以及业务参数。

Q: 测试环境与生产环境差异?

沙箱环境不产生真实资金流动,用于接口联调和流程验证。生产环境配置与沙箱一致,仅基础地址和凭证不同。

基于 GNU LGPL v3.0 协议开源