获取AccessToken·一洽客服系统业务API
accessToken是一洽的全局唯一接口调用凭据,开发者在调用各接口时都需使用accessToken。开发者需要进行妥善保存。accessToken的存储至少要保留100个字符空间。accessToken的有效期目前为2个小时,需定时刷新,重复获取将导致之前获取的accessToken失效。
业务API调用所需的accessToken的使用及生成方式说明:
1、建议开发者使用中控服务器统一获取和刷新accessToken,其他业务逻辑服务器所使用的accessToken均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致accessToken覆盖而影响业务;
2、目前accessToken的有效期通过返回的expire_in来传达,目前是7200秒。中控服务器需要根据这个有效时间提前去刷新新accessToken。在刷新过程中,中控服务器可对外继续输出的老accessToken,此时一洽开放平台后台会保证在5分钟内,新老accessToken都可用,这保证了第三方业务的平滑过渡;
3、获取accessToken以及其他业务接口的请求需在提前将开发服务器的IP设置在IP白名单中,不在白名单中的IP请求一洽会拒绝接口调用。
接口地址:
https:${apiServer}/getToken/${appId}?timestamp=${timestamp}&nonce=${nonce}&signature=${signature}
apiServer:https://eapi.echatsoft.com
appId:分配给开发者的唯一身份标识,在开发接口配置中获取
参数说明
参数 | 描述 |
---|---|
signature | 一洽加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
signature生成过程如下:
1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
检验signature的JAVA示例代码:
public String verifyUrl(String msgSignature, String timeStamp, String nonce)
throws AesException {
String signature = SHA1.getSHA1(token, timeStamp, nonce);
return signature;
}
一洽的签名生成方式和微信一致。
C# C++ Java PHP Python 微信代码示例下载:示例代码
示例:
token:myToken
timestamp:myTimestamp
nonce:myNonce
signature输出:81ceaac69a2f44be4f98d4adbea202d5792c62bb
getUrl:http://api.echatsoft.com/getToken/EAAAAAAEEEECCCCDDDEE599C2A9CNNNSSSFF?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb
返回说明
正常情况下,一洽会返回下述JSON数据包给开发者:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数说明
参数 | 描述 |
---|---|
access_token | 获取到的凭证 |
expires_in | 凭证有效时间,单位:秒戳 |
错误时一洽会返回错误码等信息,JSON数据包示例如下(该示例为IP不在白名单中):
{"errcode":10002,"errmsg":"invalid ip addr"}