请求与响应参数
公共请求参数
| 参数 | 类型 | 必填 | 参数说明 |
|---|---|---|---|
appId | String | Y | 平台应用ID |
subMerchantNo | String | Y | 子商户编号(轮询时传参:POLLING) |
bizContent | String | Y | 业务参数集合(JSON字符串,需先对业务参数排序后转 JSON) |
nonce | String | Y | 随机字符串,用于防止重放攻击 |
contentHash | String | Y | bizContent 的 SHA256 哈希值,用于防篡改校验 |
timestamp | String | Y | 时间戳,格式 "yyyy-MM-dd HH:mm:ss" |
sign | String | Y | 签名,对所有参数排序后 JSON 序列化再签名 |
version | String | N | 版本号,不传默认 1.0 |
channelExtra | Object | N | 渠道参数,特殊渠道需要的额外参数 |
requestId | String | N | 请求唯一标识,用于幂等处理 |
参数说明:Y: 必填,N: 非必填
请求示例
json
{
"appId": "your_app_id",
"subMerchantNo": "sub_merchant_id",
"bizContent": "{\"paymentMethod\":\"HUIFU_WX_MINIAPP\",\"orderNo\":\"ORDER20260703001\",\"amount\":\"0.01\",\"subject\":\"测试商品\",\"notifyUrl\":\"https://your-domain.com/notify\",\"clientIp\":\"127.0.0.1\",\"merchantUrl\":\"https://your-shop.com\"}",
"version": "1.0",
"nonce": "a1b2c3d4e5f678901234567890123456",
"contentHash": "95772c8a0c74e52b707e2ace5963e0eae956e8b1ae26e86a6cde5469247d0382",
"timestamp": "2026-07-03 14:30:00",
"sign": "your_signature_string"
}bizContent 解析后结构
json
{
"paymentMethod": "WECHAT_JSAPI",
"orderNo": "ORDER20260703001",
"amount": "0.01",
"subject": "测试商品",
"notifyUrl": "https://your-domain.com/notify",
"clientIp": "127.0.0.1",
"merchantUrl": "https://your-shop.com"
}ℹ️说明:
bizContent是业务参数的 JSON 字符串,需要先对内部参数排序后转 JSONcontentHash是bizContent的 SHA256 哈希值,用于防篡改校验nonce是随机字符串,用于防止重放攻击sign是对所有公共参数排序后 JSON 序列化再签名的结果
公共响应参数
| 参数 | 类型 | 必须 | 参数说明 |
|---|---|---|---|
code | String | Y | 响应状态码,成功为 "0000" |
message | String | Y | 响应描述 |
timestamp | String | Y | 响应时间戳,UTC 时间,ISO 8601 格式(如 2026-07-01T10:30:00.000Z) |
data | Object | N | 业务数据,无数据时返回空对象 {} |
响应示例
成功响应:
json
{
"code": "0000",
"message": "Success",
"timestamp": "2026-07-01T10:30:00.000Z",
"data": {
"transaction_no": "20260215103000123456",
"qr_code": "https://qr.example.com/pay/xxx"
}
}失败响应:
json
{
"code": "4001",
"message": "Parameter Error",
"timestamp": "2026-07-01T10:30:00.000Z",
"data": {}
}