服务端对接指南
1 获取授权接口
使用预授权结果码(accessCode)调用该接口获取授权用户信息。此接口有authCode有安全加固。
【接口定义】
接口名称 | sdkcodeinfo |
接口描述 | 获取授权用户信息 |
承载协议 | HTTPS |
承载网络 | 公网 |
请求方式 | POST/GET |
数据格式 | 返回数据:json格式 |
请求ContentType | application/x-www-form-urlencoded;charset=UTF-8 |
接口URL | https://open.e.189.cn/auth/sdkcodeinfo.do |
【请求参数】
标识 | 类型 | 是否必填 | 字段含义 | 说明 |
---|---|---|---|---|
appId | String | 是 | 应用ID | 申请应用时分配的应用ID |
timeStamp | Long | 是 | 时间戳 | 毫秒 |
format | String | 是 | 返回格式 | 目前只支持 json |
params | String | 是 | XXTea加密 | params= XXTea((accessCode=value1&authCode=value2), appSecret),其中appSecret是申请应用时平台生成的应用秘钥,参数拼接无顺序要求。 |
sign | String | 是 | RSA签名 | sign=RSA(appId+format+params+timeStamp,RSA_Private_key) 1、需要注意参数拼接key升序排序; 2、RSA_Private_key是接入方的RSA私钥; 3、接入方需要在开放平台配置自身的RSA公钥,用于访问接口时平台侧验签; RSA公钥生成工具:https://id.189.cn/api?initialSrc=/html/api_detail_630.html; 配置入口:管理中心——应用管理——查看应用详情——基本信息 4、RSA签名采用SHA1WithRSA算法。 |
【params字段说明】
标识 | 类型 | 是否必填 | 字段含义 | 说明 |
---|---|---|---|---|
accessCode | String | 是 | 授权CODE | 用户获取用户信息 |
authCode | String | 是 | 校验码 | 校验码 |
【响应参数】
标识 | 类型 | 含义 | 说明 |
---|---|---|---|
result | String | 响应结果码 | 0表示取号成功,非0表示失败 |
msg | String | 返回结果描述 | 结果描述与结果码result相对应 |
data | String | 加密数据 | 1、data采用合作方的RSA公钥加密; 2、当取号失败时,data为空; 3、data使用RSA私钥进行RSA解密。 |
【data字段解密后说明】
标识 | 类型 | 说明 |
---|---|---|
mobile | String | 手机号 |
state | String | 预授权接口回传参数,可为空 |
示例
ü 请求
ü 响应
Json示例: { "result": 0, "msg": "操作成功", "data":"446a47c3b601cd41dc1afe43e926c2ee" } data解密后: { "mobile": "15100000000", "state": "1" }
需要注意参数拼接key升序排序。其中RSA_Private_key是合作方的RSA私钥,合作方需要在天翼账号开放平台中配置RSA公钥,公钥格式要求为:1024bit pkcs#8 格式,用于访问接口时的验签。
2.1 RSA加密
加密算法 | RSA-1024加密算法 |
说明 | 1、RSA 1024 ECB加密,采用RSA_PKCS1_PADDING填充模式; 2、分组加密encryption block为128字节,最大支持117个字符; 3、加密结果转化为十六进制字符显示。 |
参考过程 | 1、对密钥进行Base64Decoder to byte[] 转换为字节数组; 2、对原文按照getByte(“UTF-8”) 转换为字节数组; 3、对原文字节进行分段加密的方式,采用RSA_PKCS1_PADDING填充方式,模值1024最大加密字节长度117字节; 4、对分段加密的结果拼接,转换为十六进制字符显示。 |
2.2 AES加密
加密算法 | AES加密算法 |
说明 | 1、模式及填充方式为:CBC/PKCS5Padding; 2、密钥长度为:16位字符串; 3、初始向量为(16个零):0000000000000000; 4、结果转换为十六进制字符显示。 |
前置条件说明 | AES密钥:3e9c459b2e3c4ed5 |
加密前原文 | timeStamp=1556435192265&bussinessType=jy |
加密后结果 | CEA1D94020B1FBED763B68496FA4313F15BC97BE18194A5EA6F87EB0E73E0DA938C7A2F01BE444C021C26163EDED581E |
2.3 HMAC-SHA1签名
加密算法 | HMAC-SHA1签名 |
说明 | 1、算法参考(https://blog.csdn.net/z69183787/article/details/78393216); 2、签名后结果转换为十六进制字符显示。 |
前置条件说明 | 应用秘钥:sAecMFcAlIXes93VaWXgr3jgMup4Y0a6 HMAC-SHA1(原文,密钥 |
加密前原文 | zhpt_inner_test1jsonA07F8458AC429D517E13DA47E180E2A57495B89B34E3A48B697C72FBEE864E43135C121877B2D873A5B74ABAEF5693B7842BA5D474810D3A99EADEA0EFBD0FED5F63E3DC0811C3FE114F4876ABFE38C3414653E6206E22A2ECFD1E60BF8C2698EF7A91F542126B173C9601BDB37EF10ADE3876AFC0313F38CEDC0CA3E5A666EEv1.5 |
加密后结果 | 63C9A468AE20B57C0C16C0EDDFB0980412DCCD3A |
2.4 XXTea加密
加密算法 | XXTea加密 |
说明 | 1、算法参考(https://blog.csdn.net/gsls200808/article/details/48243019); 2、签名后结果转换为十六进制字符显示。 |
前置条件说明 | 应用秘钥:sAecMFcAlIXes93VaWXgr3jgMup4Y0a6 XXTEA(原文,密钥) |
加密前原文 | a=1&b=2&c=3 |
加密后结果 | f6c45d934cde581e908d02487720161d |