签名说明

九官

452字约2分钟

2025-01-13

请求签名说明

1. 签名算法

  • 1.将请求报文中的body参数,按照<key, value>参数组成键值对列表,并将请求中头中的timestamp ,以timestamp为键名,组成URL键值拼接到字符串对按key进行字典升序排序(ASCII 码从小到大排序),得到有序的参数对列表N。
  • 2.将列表N中的参数对按URL键值对的格式拼接成字符串,得到字符串T(如:key1=value1&key2=value2),URL键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8,而不是小写%e8。

涉及到url相关的,编码规则参考:URL 编码格式
例如: https://openapi.jiuguanqifu.com 编码之后为 https%3A%2F%2Fopenapi.jiuguanqifu.com

  • 3.将应用密钥以key为键名,组成URL键值拼接到字符串T末尾,得到字符串S(如:key1=value1&key2=value2&key=密钥)。
  • 4.对字符串S进行MD5运算,将得到的MD5值所有字符转换成大写,得到接口请求签名。

2. 注意事项

  • 不同接口要求的参数对不一样,计算签名使用的参数对也不一样
  • 参数名区分大小写,参数值为空不参与签名
  • URL键值拼接过程value部分需要URL编码

3.签名示例:

以创建子账号为例

请求参数为:

{
    "name": "测试公司",
    "callbackUrl": "https://www.jiuguanqifu.com"
}

账号的appSecret: jP5rLJR3jP2tJdZ9LMO7ur7smdfLQFuvBBwME4Jr

请求的时间戳:1715839047129

则将上述字段根据签名规则签名之后,得到签名的字符串。如下:

callbackUrl=https%3A%2F%2Fwww.jiuguanqifu.com&name=%E6%B5%8B%E8%AF%95%E5%85%AC%E5%8F%B8&timestamp=1715839047129&key=jP5rLJR3jP2tJdZ9LMO7ur7smdfLQFuvBBwME4Jr

获取到的sign值为:F8CC28DAD9ED065DFD7292C8D6C1C09B

九官