主题
报文结构
商户联调参数信息
| 参数 | 来源 | 说明 |
|---|---|---|
| 商户 keyId | 平台生成,下发给商户 | 请求 Header 中的 merchantKeyId |
| 商户编号 merchantId | 平台生成,下发给商户 | 请求 Body 中的 merchantId |
| 加密/解密 aesKey | 平台生成,下发给商户 | 用于对 Body 进行 AES 加密/解密 |
| 商户报文验签公钥 | 平台生成,下发给商户 | 商户用于验证平台响应报文的签名 |
| 商户签名私钥 | 商户生成,商户保留 | 商户用于对请求 Body 进行 RSA 签名 |
| 平台验签公钥 | 商户生成,上传至平台 | 平台用于验证商户请求报文的签名 |
| 商户订单结果回调地址 | 商户提供,上传至平台 | 平台将异步通知推送至该地址 |
| 商户名称 | 入网 KYC 时填写 | 在收银台展示,存在二级商户时优先展示二级商户名称 |
| 商户 logo | 商户提供,上传至平台 | 在收银台展示,存在二级商户时优先展示二级商户 Logo;图片格式 png/jpg,正方形,建议尺寸 120×120 |
请求方式
所有接口均通过 HTTPS POST 发送,请求地址格式如下:
POST https://api-dev.gccpay.cn/{接口路径}
Content-Type: application/json1
2
2
固定 Header 参数
每个请求的 HTTP Header 中必须包含以下字段:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| merchantKeyId | 是 | String | 商户 keyId |
| version | 是 | String | 接口版本号,固定值:1.0 |
| timeStamp | 是 | String | 当前时间戳(秒级 Unix 时间戳) |
| signature | 是 | String | 使用商户 RSA 私钥对请求 Body 密文进行签名后的签名串 |
| content-language | 是 | String | 接口响应语言:en-US(英语)ar-SA(阿拉伯语) |
请求报文结构
Body 加密说明
请求 Body 需先进行 AES 加密,再将密文作为 aesBuffer 字段的值发送;签名基于加密后的密文生成。
请求流程:
Body 明文 → AES 加密 → aesBuffer 密文 → RSA 私钥签名 → 填入 Header signature1
2
2
请求报文格式
http
POST https://api-dev.gccpay.cn/{接口路径}
Content-Type: application/json
merchantKeyId: {商户 keyId}
version: 1.0
timeStamp: {秒级时间戳}
signature: {RSA 私钥对 Body 密文的签名}
content-language: en-US
{
"aesBuffer": "{Body 明文经 AES 加密后的密文}"
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 示例:Body 明文(加密前)
json
{
"merchantId": "MER16951291",
"merRefundOrderId": "255456464654564564484",
"origOrderId": "TRD2025011015332312345",
"origMerOrderId": "1735205288911",
"refundAmt": "20.00",
"refundCurrency": "SAR",
"refundDesc": "refund"
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- 示例:完整请求报文(加密后)
http
POST https://api-dev.gccpay.cn/pay/merchant/{接口名称}
Content-Type: application/json
merchantKeyId: 2471faa3d8654b80b61ca59904443491
version: 1.0
timeStamp: 1739268579
signature: 根据请求 Body 密文使用商户 RSA 私钥签名
content-language: en-US
{
"aesBuffer": "UQVkTVKLnyMjM+oOFNKHb6o35qGhtfdASHN/Das9sgKVOssicSbu/CioIDch46T1..."
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
响应报文结构
响应格式说明
所有接口响应的顶层结构固定如下,data 字段为 AES 加密后的密文:
json
{
"code": 10000,
"message": "success",
"data": "{data 内所有字段经 AES 加密后的密文}"
}1
2
3
4
5
2
3
4
5
验证签名后,使用 AES 密钥对 data 字段解密,即可获得业务数据。
- 示例:响应报文(data 为密文)
json
{
"code": 10000,
"message": "success",
"data": "plavp+E0T+yZd+EN7CyIw8D3rS41Foa/36n6IAStC8MTBQ7XvbYoh+WOD7EZGC6H..."
}1
2
3
4
5
2
3
4
5
- 示例:data 解密后明文
json
{
"merchantId": "MER00000001",
"orderId": "ORD20241213154012000995",
"merOrderId": "202412131543011234578",
"subMerId": "",
"orderType": "online_payin",
"paymentType": "applepay,stcpay,cardpay",
"paymentUrl": "https://api-dev.gccpay.cn/order=ORD20241213154012000995",
"orderStatus": "pending"
}1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
