签名规则
使用标准 MD5 方式加密。以积分增加接口为例,开发者的 app_secret 是 N9nxeMhxEmhCp46g945B2SQxNlm6EtZW,请求参数示例如下:
{
"app_key": "5gtbvgWkeSAvUjItxjeY",
"credits": 1,
"order_no": "SIGN1775347577806336000",
"timestamp": "1712110821586",
"uid": "17606382359"
}
第一步:将请求参数中除sign外的多个键值对,根据键按照字典序排序,并按照"key1=value1&key2=value2..."的格式拼成一个字符串:
app_key=5gtbvgWkeSAvUjItxjeY&credits=1&order_no=SIGN1775347577806336000×tamp=1712110821586&uid=17606382359
第二步:将app_secret拼接在第一步中排序后的字符串后面得到待签名字符串:
app_key=5gtbvgWkeSAvUjItxjeY&credits=1&order_no=SIGN1775347577806336000×tamp=1712110821586&uid=17606382359&app_secret=N9nxeMhxEmhCp46g945B2SQxNlm6EtZW
第三步:使用md5算法加密待加密字符串并转为大写即为sign:
C5587E613DF142AE167CB64C83D19C0D
第四步:将 sign 添加到请求参数中:
{
"app_key": "5gtbvgWkeSAvUjItxjeY",
"credits": 1,
"order_no": "SIGN1775347577806336000",
"timestamp": "1712110821586",
"uid": "17606382359",
"sign": "C5587E613DF142AE167CB64C83D19C0D"
}
需要注意以下重要规则:
- 请求参数中有中文时,中文需要经过url编码;
- 请求参数的值为空则不参与签名;
- 参数名区分大小写;
- sign参数不参与签名
