接入关爱通,先联系关爱通,申请appid。
每个应用有一个独立的appid。
每个应用有一个私有密码appsecret,需要各个应用保存好,一旦泄漏可以申请更换。
如果您是企业客户,请联系您的客户经理,申请企业开放接口;如果您是供应商,请联系您的商务负责人,申请商家开放接口。
调用关爱通业务接口之前,需要首先获取关爱通授权令牌,令牌的获取参看生成token接口文档。令牌有效期内可以通过查询token接口获取已经生成的令牌;如果令牌过期,请及时生成新的令牌。
业务接口的请求参数包括公共参数和私有参数,公共参数都一样,具体参看公共参数,私有参数参看具体的业务接口说明文档。
关爱通会对请求进行验证,只有验证通过后才会允许调用接口。令牌接口的验证包括:timestamp(时间戳)验证、appid验证、请求URI验证、ip地址验证、接口调用频率验证和sign(签名)验证;业务接口的验证包括:timestamp(时间戳)验证、token(令牌)验证、请求URI验证、ip地址验证、接口调用频率验证和sign(签名)验证。验证失败会返回对应错误码,具体参看错误代码。
关爱通所有接口请求参数中sign参数的生成,参看签名机制。
接口调用流程如下图所示。
关爱通开放平台接口传递参数的方式,以接口文档为准。
支持GET和POST两种方式传递参数的接口,我们推荐选用POST方式,提高数据传输的安全性。
接口无特殊说明的话,请求参数以Form的格式提交,Content-Type:application/x-www-form-urlencoded
接口无特殊说明的话,返回json格式的数据。
把appsecret加入到接口的请求参数中,对参数名进行字典升序排列,把参数名和参数值直接拼接起来,对拼接形成的字符串进行SHA1计算,计算结果的小写即为签名参数sign的值。
签名生成的具体步骤为:
1、将颁发的appsecret加入到请求参数中;
2、对请求参数(包含appsecret)的key(参数名)进行字典升序排列;
3、以&拼接排好序的参数,参数的形式为key=value;
4、计算步骤3生成结果的SHA1值,该值的小写即为签名参数sign的值。
注:
1、签名时的所有参数,无须urlencode;
2、请勿将appsecret参与到http请求传递中,它是双方保管的密钥,一旦泄露,请申请更换。
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)
业务接口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)
目前支持的编码为UTF-8, 请在开发前做以下测试,确保您的sha1结果跟我们的一致:
sha1(‘123456’)= 7c4a8d09ca3762af61e59520943dc26494f8941b sha1(‘测试’)= 0b5d7ed54bee16756a7579c6718ab01e3d1b75eb
您可以使用关爱通开放平台提供的API联调工具进行接口调试。
请登录:https://openweb.guanaitong.com
沙河环境调试 请登录:https://openweb.guanaitong.tech