加签算法

一、签名生成规则

appKey和appSecret需要从OMS后台的API信息获取

步骤 1:先处理 data 里的业务数据

把data中的所有业务数据,按照 字典顺序(不区分字母大小写) 进行升序排列(也就是从 A 到 Z、从 0 到 9 的顺序)。

步骤 2:对三个核心参数排序并拼接

把appKey、步骤 1 处理好的data、reqTime这三个参数,同样按照 字典顺序(不区分字母大小写) 进行升序排列,排序完成后,直接将这三个参数的内容依次拼接成一串完整的字符串。

步骤 3:加密生成 authcode

将步骤 2 拼接完成的字符串作为明文,把appSecret(接口密钥)作为 HmacSHA256 算法的专属密钥,传入 HmacSHA256 加密算法中进行运算,最终将运算结果转换为 16 进制字符串,这个字符串就是所需的authcode。


入参示例

请求地址:https://api.xlwms.com/openapi/v1/outboundOrder/pageList?authcode=31450e8c7603b1b2a4fdb0143740a105d7260cb291c08208b658eabe52f1ec6b

请求方式: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信息的开发验签工具进行调试