服务端对接指南

[隐藏]

1 获取授权接口

使用预授权结果码(accessCode)调用该接口获取授权用户信息。此接口有authCode有安全加固。

   【接口定义】

接口名称

sdkcodeinfo

接口描述

获取授权用户信息

承载协议

HTTPS

承载网络

公网

请求方式

POST/GET

数据格式
返回数据:json格式

请求ContentType

application/x-www-form-urlencoded;charset=UTF-8

接口URLhttps://open.e.189.cn/auth/sdkcodeinfo.do

【请求参数】

标识类型是否必填字段含义说明
appIdString
应用ID申请应用时分配的应用ID
timeStampLong时间戳毫秒
formatString返回格式目前只支持 json
paramsStringXXTea加密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字段说明】

标识类型是否必填字段含义说明
accessCodeString授权CODE用户获取用户信息

authCode

String校验码校验码


【响应参数】

标识类型含义说明
resultString
响应结果码0表示取号成功,非0表示失败
msgString返回结果描述结果描述与结果码result相对应
dataString加密数据

1、data采用合作方的RSA公钥加密;

2、当取号失败时,data为空;

3、data使用RSA私钥进行RSA解密。

【data字段解密后说明】

标识类型说明
mobileString
手机号
stateString预授权接口回传参数,可为空


示例


ü 请求

https://open.e.189.cn/auth/sdkcodeinfo.do?appId=8134110178&format=json&sign=9122E960EB1BF6A67D7429404233C3FDA01B6A2F&timeStamp=175868425871&params=XXXXX


ü  响应

Json示例:

{

    "result": 0,

"msg": "操作成功",

"data":"446a47c3b601cd41dc1afe43e926c2ee"

}

data解密后:

{

"mobile": "15100000000",

"state": "1"

}

需要注意参数拼接key升序排序。其中RSA_Private_key是合作方的RSA私钥,合作方需要在天翼账号开放平台中配置RSA公钥,公钥格式要求为:1024bit  pkcs#8 格式,用于访问接口时的验签。



2、加密结果校对

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