跳转到内容

签名说明

一般项目都不需要开启这个,默认关闭;非必要不需要对接!!!

一般项目都不需要开启这个,默认关闭;非必要不需要对接!!!

一、需要中台采购端开启签名验证


二、请求签名

1.请求时header 增加参数

App-Nonce-Str 随机字符串 (16位)

App-Timestamp 时间戳

App-Sign 签名

2.query的参数(加上header中的随机字符串以及时间戳)键名称 ASCII 码排序之后 key=value&key=value拼接

例如:App-Nonce-Str=4NHng4SbFsHwZedT&App-Timestamp=1704685697

3.以上的结构拼接上&appKey=appKey&appSecret=appSecret

例如:App-Nonce-Str=4NHng4SbFsHwZedT&App-Timestamp=1704685697&appKey=application6&appSecret=d8e2396f8a78d9069737f16f9e2627da

4.在上一步结果后直接拼接,经过去除空白字符(\s)的HTTP Body原始字符串

例如: App-Nonce-Str=4NHng4SbFsHwZedT&App-Timestamp=1704685697&appKey=application6&appSecret=d8e2396f8a78d9069737f16f9e2627da{“origin_rate”:{“from”:50,“to”:150},“is_display”:1,“page”:1,“pageSize”:20,“message_id”:“WVoxNzA0Njg1Njk3OTU4Ng==”}

5.进行sha1加密,得到16进制字符串

例如: c8d6421f7c312d8192fb1b75d6418038e8a1b1bf

6.对上一步结果进行md5加密,得到16进制字符串

例如 9d6e70967e445daa146a95e4ad98b296

7.将上一步结果转为大写

例如: 9D6E70967E445DAA146A95E4AD98B296

三、响应签名

响应头返回时增加

Response-Timestamp 时间戳

Response-Nonce-Str 随机字符串

Response-Sign 签名

1. Response-Timestamp 时间戳 Response-Nonce-Str 随机字符串 按照ASCII 码排序之后 key=value&key=value拼接

例 Response-Nonce-Str=ZPRVCYQONGUAMLEO&Response-Timestamp=1677048435085&appKey=application6&appSecret=d8e2396f8a78d9069737f16f9e2627da

2. 以上的结构拼接上&appKey=appKey&appSecret=appSecret

例例 Response-Nonce-Str=ZPRVCYQONGUAMLEO&Response-Timestamp=1677048435085&appKey=application6&appSecret=d8e2396f8a78d9069737f16f9e2627da

3.在上一步结果后直接拼接,经过去除空白字符(\s)的返回参数中data的json字符串

例:返回结果为

{
"code": 7,
"data": {
"code": 0,
"messages": [
"SN230110161492C6DD订单已关闭,无法支付!"
],
"order_price": null
},
"msg": "提交失败,请查看messages"
}

Response-Nonce-Str=ZPRVCYQONGUAMLEO&Response-Timestamp=1677048435085&appKey=application6&appSecret=d8e2396f8a78d9069737f16f9e2627da{“code”:0,“messages”:[“SN230110161492C6DD订单已关闭,无法支付!”],“order_price”:null}

4.进行sha1加密,得到16进制字符串

5.对上一步结果进行md5加密,得到16进制字符串

6..将上一步结果转为大写

四、消息签名 — 消息签名不拼接key

1.请求时header 增加参数

App-Nonce-Str 随机字符串 (16位)

App-Timestamp 时间戳

App-Sign 签名

2.query的参数(加上header中的随机字符串以及时间戳)键名称 ASCII 码排序之后 key=value&key=value拼接

例如:App-Nonce-Str=5GeS9R3wtrsICv6i&App-Timestamp=1677048434

3.以上的结构拼接上&appSecret=appSecret

例如:App-Nonce-Str=ISWWBVLDRTQVCYHM&App-Timestamp=1677128166524&appSecret=d8e2396f8a78d9069737f16f9e2627da

4.在上一步结果后直接拼接,经过去除空白字符(\s)的HTTP Body原始字符串

例如:App-Nonce-Str=ISWWBVLDRTQVCYHM&App-Timestamp=1677128166524&appSecret=d8e2396f8a78d9069737f16f9e2627da{“message_code”:0,“order_sn”:“SN2302221747E043FA”,“message_type”:“order.update_send”,“member_sign”:“d8e2396f8a78d9069737f16f9e2627da”,“message_id”:“selfb3JkZXJTTjIzMDIyMjE3NDdFMDQzRkFvcmRlci51cGRhdGVfc2VuZDE2NzcxMjgxNjY=”}

5.进行sha1加密,得到16进制字符串

例如:a0eee7f7ae90d024e8038013dc0a1acee9e4ed5b

6.对上一步结果进行md5加密,得到16进制字符串

例如 e58ff9365dea5482d0e11bd15a95d4f7

7.将上一步结果转为大写

例如:E58FF9365DEA5482D0E11BD15A95D4F7