文档中心 通用协议 通用协议

通用协议

1.申请应用

接入关爱通,先联系关爱通,申请appid。

每个应用有一个独立的appid。

每个应用有一个私有密码appsecret,需要各个应用保存好,一旦泄漏可以申请更换。

如果您是企业客户,请联系您的客户经理,申请企业开放接口;如果您是供应商,请联系您的商务负责人,申请商家开放接口。

2.接口调用

调用关爱通业务接口之前,需要首先获取关爱通授权令牌,令牌的获取参看生成token接口文档。令牌有效期内可以通过查询token接口获取已经生成的令牌;如果令牌过期,请及时生成新的令牌。

业务接口的请求参数包括公共参数和私有参数,公共参数都一样,具体参看公共参数,私有参数参看具体的业务接口说明文档。

关爱通会对请求进行验证,只有验证通过后才会允许调用接口。令牌接口的验证包括:timestamp(时间戳)验证、appid验证、请求URI验证、ip地址验证、接口调用频率验证和sign(签名)验证;业务接口的验证包括:timestamp(时间戳)验证、token(令牌)验证、请求URI验证、ip地址验证、接口调用频率验证和sign(签名)验证。验证失败会返回对应错误码,具体参看错误代码

关爱通所有接口请求参数中sign参数的生成,参看签名机制

接口调用流程如下图所示。

接口调用流程

3.GET或POST

关爱通开放平台接口传递参数的方式,以接口文档为准。

支持GET和POST两种方式传递参数的接口,我们推荐选用POST方式,提高数据传输的安全性。

4.数据格式

接口无特殊说明的话,请求参数以Form的格式提交,Content-Type:application/x-www-form-urlencoded

接口无特殊说明的话,返回json格式的数据。

5.签名机制

把appsecret加入到接口的请求参数中,对参数名进行字典升序排列,把参数名和参数值直接拼接起来,对拼接形成的字符串进行SHA1计算,计算结果的小写即为签名参数sign的值。

签名生成的具体步骤为:

 1、将颁发的appsecret加入到请求参数中;

 2、对请求参数(包含appsecret)的key(参数名)进行字典升序排列;

 3、以&拼接排好序的参数,参数的形式为key=value;

 4、计算步骤3生成结果的SHA1值,该值的小写即为签名参数sign的值。

注:

 1、签名时的所有参数,无须urlencode;

 2、请勿将appsecret参与到http请求传递中,它是双方保管的密钥,一旦泄露,请申请更换。

签名计算示例1
token生成接口sign生成示例

以token生成接口中sign的生成为例。假设请求参数信息为:
grant_type:client_credential
appid:30000003
timestamp:1469691921
假设颁发的appsecret为:f4cc82386a1cdddcc98e4f53b1115a62

签名参数sign生成步骤:
1、将颁发的appsecret加入到请求参数中。加入appsecret的参数信息为:
grant_type:client_credential
appid:30000003
timestamp:1469691921
appsecret:f4cc82386a1cdddcc98e4f53b1115a62

2、对请求参数(包含appsecret)的key(参数名)进行字典升序排列。排好序的参数信息依次为:
appid:30000003
appsecret:f4cc82386a1cdddcc98e4f53b1115a62
grant_type:client_credential
timestamp:1469691921

3、以&拼接排好序的参数,参数的形式为key=value。拼接结果为:
appid=30000003&appsecret=f4cc82386a1cdddcc98e4f53b1115a62&
grant_type=client_credential&
timestamp=1469691921

4、计算步骤3生成结果的SHA1值,该值即为签名参数sign的值。步骤3的结果appid=30000003& 
appsecret=f4cc82386a1cdddcc98e4f53b1115a62&
grant_type=client_credential&
timestamp=1469691921的SHA1值37215380cf57d3b19b3ca537ed6dbc3fda98552e即为sign的值。
即:sign=sha1(appid=30000003&
appsecret=f4cc82386a1cdddcc98e4f53b1115a62&
grant_type=client_credential&
timestamp=1469691921)

					
签名计算示例2
业务接口sign生成示例【请求参数为QueryString或者Form形式】
请求参数的形式为QueryString或者Form的接口,参数sign由接口的系统参数和业务参数的键值对生成,示例如下:
假设,接口的业务参数为:
key1:value1
key2:value2
key3:value3
系统参数为:
access_token: efab39effde9a19f08ba9717cd22a6f91b400bb0
timestamp:1469691921
version:1.0.0
颁发的appsecret为:f4cc82386a1cdddcc98e4f53b1115a62
则接口sign的生成步骤为:
1、将颁发的appsecret加入到请求参数中。加入appsecret的参数信息为:
key1:value1
key2:value2
key3:value3
access_token: efab39effde9a19f08ba9717cd22a6f91b400bb0
timestamp:1469691921
version:1.0.0
appsecret:f4cc82386a1cdddcc98e4f53b1115a62

2、对请求参数(包含appsecret)的key(参数名)进行字典升序排列。排好序的参数信息依次为:
access_token: efab39effde9a19f08ba9717cd22a6f91b400bb0
appsecret:f4cc82386a1cdddcc98e4f53b1115a62
key1:value1
key2:value2
key3:value3
timestamp:1469691921
version:1.0.0

3、以&拼接排好序的参数,参数的形式为key=value。拼接结果为:
access_token=efab39effde9a19f08ba9717cd22a6f91b400bb0&
appsecret=f4cc82386a1cdddcc98e4f53b1115a62&
key1=value1&key2=value2&key3=value3&
timestamp=1469691921&version=1.0.0

4、计算步骤3生成结果的SHA1值,该值即为签名参数sign的值。
sign=sha1(access_token=efab39effde9a19f08ba9717cd22a6f91b400bb0&
appsecret=f4cc82386a1cdddcc98e4f53b1115a62&
key1=value1&key2=value2&key3=value3&
timestamp=1469691921&version=1.0.0)

6.编码格式

目前支持的编码为UTF-8, 请在开发前做以下测试,确保您的sha1结果跟我们的一致:

UTF-8编码
sha1(‘123456’)= 7c4a8d09ca3762af61e59520943dc26494f8941b
sha1(‘测试’)= 0b5d7ed54bee16756a7579c6718ab01e3d1b75eb

7.接口调试

您可以使用关爱通开放平台提供的API联调工具进行接口调试。

请登录:https://openweb.guanaitong.com

沙河环境调试 请登录:https://openweb.guanaitong.tech