加签算法
一、签名生成规则
appKey和appSecret需要从OMS后台的API信息获取
步骤 1:先处理 data 里的业务数据
把data中的所有业务数据,按照 字典顺序(不区分字母大小写) 进行升序排列(也就是从 A 到 Z、从 0 到 9 的顺序)。
步骤 2:对三个核心参数排序并拼接
把appKey、步骤 1 处理好的data、reqTime这三个参数,同样按照 字典顺序(不区分字母大小写) 进行升序排列,排序完成后,直接将这三个参数的内容依次拼接成一串完整的字符串。
步骤 3:加密生成 authcode
将步骤 2 拼接完成的字符串作为明文,把appSecret(接口密钥)作为 HmacSHA256 算法的专属密钥,传入 HmacSHA256 加密算法中进行运算,最终将运算结果转换为 16 进制字符串,这个字符串就是所需的authcode。
入参示例
请求方式:POST
- 原始传入的参数:
{
"appKey": "b80bf9a79fba4efd9fe7a1ffd8591116",
"data": {
"page": 1,
"pageSize": 10,
"outboundOrderNos": "OB069220519008,OB069220519007,OB069220519006"
},
"reqTime": "1653640516"
}
- 排序拼接后(步骤 1 + 步骤 2 的最终结果): 先把data里的字段按字典升序排好(current→outboundOrderNos→size),再把appKey、排序后的data、reqTime按字典升序排好(appKey→data→reqTime),最后拼接得到:
b80bf9a79fba4efd9fe7a1ffd8591116{"page":1,"outboundOrderNos":"OB069220519008,OB069220519007,OB069220519006","pageSize":10}1653640516
- 生成 authcode 示例(步骤 3 的最终结果):
31450e8c7603b1b2a4fdb0143740a105d7260cb291c08208b658eabe52f1ec6b
说明
- reqTime 字段为请求时间的 UNIX 时间戳(十位),超时 5 分钟的请求将被服务器拒绝。
- authcode 通过GET 方式传递,其余参数都通过 POST 方式传递。
二、验签工具
对接前可以在OMS后台的API信息的开发验签工具进行调试
Updated 8 days ago
