auth Token取值说明
定义
authToken值是云商店与商家之间进行安全校验的必选参数。云商店每次调用商家接口的Get请求参数中或Post请求的Header里都会带有authToken值。
商家根据生成规则生成authToken值,并与Get请求参数中或Post请求的Header里的authToken值进行比较。完全相同即为校验通过。
生成规则
- 对于post请求,取所有的body请求参数。
- 对参数名进行字典排序。
- 对整个字符串进行hmacSHA256 加密,密钥取Key值。
举例
商家收到的调用请求示例如下:
post方式: https://www.isvwebsite.com/saasproduce Connection: keep-alive Content-Type: application/json authToken: “xxxxxxxxxxxxxx” Host: www.isvwebsite.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "p1": "1", "p2": "2", "p3": "3", "timeStamp": "201706211855321" }
- 获取所有的post请求body参数:p1、p2、p3、timeStamp
- 进行字典排序:sort(p1, p2, p3,timeStamp),假设排序后的顺序是p1、p3、p2、timeStamp
- 生成authToken值:base64_encode(HMAC_SHA256(Key+timeStamp, p1=1&p3=3&p2=2&timeStamp=201706211855321))
所有参数的值云商店都经过了URL编码,商家取到参数值应先进行URL解码。
代码示例
代码示例请参见ISV Server验证所有的post body通知请求。