一般项目都不需要开启这个,默认关闭;非必要不需要对接!!!
一般项目都不需要开启这个,默认关闭;非必要不需要对接!!!
一、需要中台采购端开启签名验证

二、请求签名
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