107 lines
2.2 KiB
Markdown
107 lines
2.2 KiB
Markdown
# 接口规范
|
|
|
|
# 一、请求格式
|
|
|
|
# 二、AppId、AppKey 和 AppSercet
|
|
|
|
- 由双方协定,或由我平台提供
|
|
|
|
- AppId:商户号
|
|
|
|
- AppKey:长度为16位
|
|
|
|
- AppSecret:长度为32位
|
|
|
|
- 用于
|
|
|
|
- 卡券、卡密类订单的数据的加密
|
|
|
|
- 签名时的补充数据
|
|
|
|
- *AppSercet需考虑定期更换*
|
|
|
|
|
|
|
|
# 三、请求接口公共参数
|
|
|
|
***可选参数在对接时,请联系对接方,非特殊说明情况下,默认不传递***
|
|
|
|
|
|
|
|
# 四、请求签名规则
|
|
|
|
**注意:签名前,需双方协定或由厂商提供AppSecret**
|
|
|
|
sign签名时
|
|
|
|
1. 去掉空格:剔除参数名和参数值的前后空格,包括\\n和\\r等空值
|
|
|
|
2. 剔除空值:如果参数没有值,不参与签名
|
|
|
|
3. **sign不参与签名,其他字段均参与签名**
|
|
|
|
4. 排序生成待签名串:
|
|
|
|
1. 所有参数名**按照ascii顺序**进行排序
|
|
|
|
2. 并且参数名与参数值**通过a=1\&b=2的方式**将所有参数进行组合
|
|
|
|
3. 生成新的字符串后在字符串后**加上请求的方式**
|
|
|
|
4. 再**加上AppSecret**后获得待签名字符串
|
|
|
|
5. 进行加密
|
|
|
|
1. 默认进行MD5加密
|
|
|
|
2. 将第三步的待签名字符串进行utf8编码
|
|
|
|
3. 再进行md5操作后得到字符串
|
|
|
|
4. 最后转小写后为签名字符串
|
|
|
|
```JSON
|
|
// 假定 AppSercet 为 ac9fa79db418fd2c61d9bd4c60956f2d5db3a6d781d6f91f2e96327c74dfaccd
|
|
// 假定是下订单的接口 POST
|
|
// 待签名参数
|
|
{
|
|
// 公共参数
|
|
app_id: '15945681 ',
|
|
timestamp: 1740916504,
|
|
|
|
// 业务参数
|
|
charge_account: '18888888888',
|
|
buy_num: 2,
|
|
customer_price: 1.21,
|
|
customer_order_no: 'DD202507010010208888',
|
|
product_id: '66668888'
|
|
}
|
|
// 上述参数的签名字符串(去掉空值、去掉空格;最后加上请求方法和AppSecret)
|
|
app_id=15945681&buy_num=2&charge_account=18888888888&
|
|
customer_order_no=DD202507010010208888&customer_price=1.21&
|
|
product_id=66668888×tamp=1740916504
|
|
POSTac9fa79db418fd2c61d9bd4c60956f2d5db3a6d781d6f91f2e96327c74dfaccd
|
|
|
|
// MD5后转小写,签名字符串为:
|
|
4087a959f3488ecb13efe6ef58e3bc67
|
|
```
|
|
|
|
|
|
|
|
# 五、响应公共信息
|
|
|
|
**响应签名规则请参考“请求签名规则”**
|
|
|
|
**sign不参与签名,其他字段均参与签名**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|