授权认证说明

      为了确保客户与易企通API服务器之间的安全通信,防止Secret Key盗用,数据篡改等恶意攻击,易企通API服务器使用了授权机制(即sign参数)来认证应用。授权是由请求参数和应用的私钥Secret Key经过MD5加密后生成的字符串。在调用易企通API之前,要计算出授权,并追加到请求参数中。

  授权算法

      •  假设某个易企通API需要3个参数,分别是"k1"、"k2"、"k3",它们的值分别是"v1"、"v2"、"v3",调用易企通API的应用的私钥Secret Key为"secret_key",计算方法如下所示:

      ◦  将请求参数格式化为"key=value"格式,即"k1=v1"、"k2=v2"、"k3=v3";
      ◦  将上述格式化好的参数键值对,以  字典序升序  排列后,拼接在一起,即"k1=v1k2=v2k3=v3";
      ◦  在上述拼接好的字符串末尾追加上应用的Secret Key;
      ◦  上述字符串的MD5值即为签名的值。

      •  注意:

      ◦  这些参数中不包含sign(签名)参数,因为sign参数的值此时没有计算出来
      ◦  计算sign时的字符串,必须用UTF-8编码
      ◦  HTTP请求要求,HTTP Body内的数据需要进行URLEncode编码

  示例说明

      •  客户想使用路由绑定接口 pci.bind.json 时,需要提交如下参数到易企通服务器:

{
    "pid": "62a495239be91d5f041930d6fceba9f1",
    "sn" : "10000001",
    "tel" : "4006001001"
    "service" : "pci.bind.json"
    "method": "get",
    "v": "2.0",
}

      •  经过第一步格式化,参数格式如下所示:

[
    "pid=62a495239be91d5f041930d6fceba9f1",
    "sn=10000001",
    "tel=4006001001",
    "service=pci.bind.json",
    "method=get",
    "v=2.0"
]

      •  经过第二步排序并拼接成一个字符串,格式如下所示:

"method=getpid=62a495239be91d5f041930d6fceba9f1service=pci.bind.jsonsn=10000001
    tel=4006001001v=2.0"

      •  经过第三步追加应用Secret Key(假设Secret Key值为6a04489dc348dc7415b9c9cc2392af17)后,整个字符串格式如下所示:

"method=getpid=62a495239be91d5f041930d6fceba9f1service=pci.bind.jsonsn=10000001 \
    tel=4006001001v=2.06a04489dc348dc7415b9c9cc2392af17"

      •  经过第四步计算上述字符串的MD5值:f78cb7c008d54ea805d64b99f59c6a82,此值即为签名的值.接下来便可以请求易企通API服务器,进行接口调用,下面是以一个 HTTP GET 请求来形象的表示此次请求:

http://api.eqitong.com/api.json?pid=62a495239be91d5f041930d6fceba9f1&sn=10000001 \
&tel=4006001001&service=pci.bind.json&method=get&v=2.0&sign=f78cb7c008d54ea805d64b99f59c6a82