签名计算


API接口的签名方案,OTO SaaS平台采用了md5数字摘要,保证数据传输的安全可靠。

签名计算规则

  1. 将请求参数按照字母表的顺序(a~z)排序,将参数值进行urlencode(utf-8)编码,并拼接到一起,得到字符串A

     urlencode 我们采用RFC 3986标准(空格编码值为%20),对于— _ . ~四个字符保留,其他的特殊字符,比如:! * ( ) ' 均采用"%"HEX HEX编码,比如 "!"编码值%21,"*"编码值%2A,空格编码%20等
    
     其中时间戳timestamp(当前距离Epoch(1970年1月1日) 以秒计算的时间戳,即unix-timestamp)是必要参数
    
     接口参数 {
                 "customerUserId":"1e17a99d-ca4b-49be-908b-93c8faa20baf"
                 "customerUserPhone":"13309102786"
             }
    
     timestmp=1482399837
     排序规则只针对JSON的一级属性,对于嵌套属性(属性值是对象或者数组)不加入字符串A的拼接。
    
     字符串A:
     1e17a99d-ca4b-49be-908b-93c8faa20baf133091027861482399837
    
     customerUserId + customerUserPhone + timestamp
    
  2. 计算第一步获取的字符串A,appKey + 字符串A + appSecret的顺序进行拼接,得到字符串B

     appKey = "9381936516"
     appSecret = "D31ba58fd73C71db697ab5E4946D52F"
    
     字符串B:
    
     9381936516e17a99d-ca4b-49be-908b-93c8faa20baf133091027861482399837D31ba58fd73C71db697ab5E4946D52F
    
     appKey 和 appSecret 需合作方申请
    
  3. 计算签名,对字符串B计算md5哈希,得到签名:

     1f009b4f1df3f9e90fad9d4f853d5c62
    
  4. 将得到的签名赋给sign作为HTTP请求参数

     http://otosaas.com/apiurl/?appKey=9381936516&customerUserId=1e17a99d-ca4b-49be-908b-93c8faa20baf&customerUserPhone=13309102786&timestamp=1482399837&sign=1f009b4f1df3f9e90fad9d4f853d5c62
    

results matching ""

    No results matching ""