验证签名规则
在国际交易开放平台,url请求的多个参数都要参与签名(与文件上传有关的api中,文件字节流那个参数不参与签名,POST请求access_token通过请HTTP请求头传递,不参与签名),下面以两个参数为例,假设请求的url格式如下所示:
签名示例:
https://open.patpat.com/api/current_time?b=2&a=1(假设app_secret= 123456)
- 1、 构造签名因子:拼装的参数。参数 b=2&a=1,首先将参数的key和value拼在一起,得到b2和a1,然后按照首字母排序,得到a1和b2,最后按顺序拼在一起得到a1b2 ,得到s
- 2、 对签名因子执行hmac_sha1算法。 Signature=uppercase (hex (hmac_sha1 (s, app_secret)) 得到签名69DAA1B8D1740A85392A75E881ECB64989FA2A72
——app_secret为签名密钥,与urlPath中的app_secret对应
——hmac_sha1为通用的hmac_sha1算法,各编程语言一般都对应类库
——hex为转为十六进制
——uppercase为转为大写字符