加签算法

一、签名生成规则

appKey和appSecret需要从OMP后台的API信息获取,授权对象选择:智能设备

签名生成分为4个关键步骤:

  1. 参数排序 - 按字典序升序排列参数名
  2. 参数拼接 - 将参数名和值拼接成字符串
  3. 构造基础字符串 - 组合appSecret+path+参数+appSecret
  4. 计算签名 - 使用HMAC-SHA256算法加密

示例请求

请求地址:https://api.xlwms.com/openapi/v2/wave/sortingResults

请求参数示例:

  • appKey:tenant1234567890abcdef1234567890abcd
  • appSecret:your_app_secret_here_32_bytes_long
  • path:/openapi/v2/wave/sortingResults

用户原始请求报文(未生成签名前)

{
	"data":{
		"waveNo":"W2503200SL",
		"sortingList":[
			{
				"outboundOrderNo":"OBS0012503200SN",
				"productList":[
					{
						"sortingQuantity":5,
						"barcode":"SKU202306001"
					},
					{
						"sortingQuantity":8,
						"barcode":"EAN9876543210987"
					}
				]
			}
		]
	},
	"appKey":"tenant1234567890abcdef1234567890abcd",
	"timestamp":"1744968917"
}

第一步:按字典升序排列参数名 (data内的参数无需排序)

{appKey=tenant1234567890abcdef1234567890abcd, data={waveNo=W2503200SL, sortingList=[{outboundOrderNo=OBS0012503200SN, productList=[{sortingQuantity=5, barcode=SKU202306001}, {sortingQuantity=8, barcode=EAN9876543210987}]}]}, timestamp=1744968917}

第二步:将第一步生成的参数名和值拼接成字符串

appKeytenant1234567890abcdef1234567890abcddata{waveNo=W2503200SL, sortingList=[{outboundOrderNo=OBS0012503200SN, productList=[{sortingQuantity=5, barcode=SKU202306001}, {sortingQuantity=8, barcode=EAN9876543210987}]}]}timestamp1744968917

第三步:appSecret + path + 第二步生成的字符串 + appSecret

your_app_secret_here_32_bytes_long/openapi/v2/wave/sortingResultsappKeytenant1234567890abcdef1234567890abcddata{waveNo=W2503200SL, sortingList=[{outboundOrderNo=OBS0012503200SN, productList=[{sortingQuantity=5, barcode=SKU202306001}, {sortingQuantity=8, barcode=EAN9876543210987}]}]}timestamp1744968917your_app_secret_here_32_bytes_long

使用HMAC-SHA256算法加密生成sign

BA1B238409351ECE455DF9E062F20A1B4BDA4D0BB68AC0AC0158BEB2552A4467

生成签名后的请求报文

{
	"data":{
		"waveNo":"W2503200SL",
		"sortingList":[
			{
				"outboundOrderNo":"OBS0012503200SN",
				"productList":[
					{
						"sortingQuantity":5,
						"barcode":"SKU202306001"
					},
					{
						"sortingQuantity":8,
						"barcode":"EAN9876543210987"
					}
				]
			}
		]
	},
	"sign":"BA1B238409351ECE455DF9E062F20A1B4BDA4D0BB68AC0AC0158BEB2552A4467",
	"appKey":"tenant1234567890abcdef1234567890abcd",
	"timestamp":"1744968917"
}

二、验签工具

对接前可以在OMP后台的API信息的开发验签工具进行调试