3、能力对接

3.1 交互流程

合作方app:对接方的app,用户通过对接方的app使用移动网络向平台获取网络数据;

天翼账号平台:服务主要提供方,提供手机号码取号服务;

合作方平台:基于安全考虑,手机号码取号服务必须由合作方平台发起;

运营商网关认证平台:协助天翼账号平台向app提供网络数据。

注:红色字体是由合作方去实现的功能

步骤说明:

(1)客户端每次调用接口时都需要生成一个随机的对称加密(例如AES)的秘钥(AES-KEY),app提前配置好账号平台公钥(RSA-PUBLIC-KEY);

(2)合作方app采用对称加密方式向天翼账号平台请求,获取授权码,具体详见第一步:从手机端调用获取授权码接口

(3)账号平台最后将返回报文通过AES-KEY加密返回给客户端(双向加密);

(4)客户端拿到AES-KEY加密的返回报文,通过本地保存的AES-KEY秘钥解密。拿到返回报文明文,提交给合作方平台。

(5)【调用此接口计费】合作方平台调用手机号校验接口(verifyMobile.do),具体详见第二步合作方平台调用手机号校验接口。

(6)流程结束。

3.2 对接指引

天翼账号开放平台根据合作方不同的应用端场景,提供了通过3种调用方式让合作方从手机端调用获取授权码接口,包括AndroidSDK、iOS SDK以及API调用。其中,SDK方式为合作方实现了WiFi下调用,而API方式则只能在移动数据网络下调用。

3.2.1 通过Android SDK调用

1、根据Android SDK接入指南接入SDK,完成SDK的导入,配置等准备工作。

2、创建对象并调用初始化接口 init

输入参数:参数名参数说明数据类型可空appKey分配给第第三方应用的appKeyStringN

appSecrect分配给第三方应用的appsecrectStringN

3、调用获得用户手机授权码接口getPreCode

输入参数:参数名参数说明数据类型可空bussinessType业务类型,固定填写“jy”StringN

preCodeListener请求结果回调类PreCodeListenerN

输出参数:参数名参数说明数据类型可空accessCode授权码,天翼账号授权码,时效性60sStringN

msg如果result不等于0,会有相应的错误信息提示,用UTF-8编码StringN

operatorTypeCT电信,CU联通,CM移动,UN其他StringN

result操作结果返回码,0 表示操作成功intN

第二个参数preCodeListener类需要实现onSuccess和onFail方法,用于结果回调。

调用示例如下:CtgAuth ctgAuth = CtgAuth.getInstance();

//参数分别为:应用上下文, 平台下发给应用的appKey,平台下发给应用的app密钥

ctgAuth.init(MainActivity.this, APPKEY, APPSECRET);

ctgAuth.getPreCode("jy", new PreCodeListener() {

@Override

public void onSuccess(int result,final String accessCode,String msg,String op){

//获取授权码成功回调

}

@Override

public void onFail() {

//获取授权码失败回调

}

});

注意事项:

1)调用getPreCode方法前,必须先获取CtgAuth单例对象并调用其初始化方法(init)。

2)成功回调结果授权码(accessCode)具有时效性,在60s之内有效。3.2.2 通过iOS SDK调用

iOS SDK调用流程如下

1、根据iOS SDK接入指南接入SDK,完成SDK的导入,配置等准备工作。

2、配置网络权限,EAccountSDK.framework等动态库文件。

3、调用初始化接口:+ (id)initWithSelfKey:(NSString *)appKey

appSecret:(NSString *)appSecrect

appName:(NSString *)appName;

输入参数:参数名参数说明数据类型可空appKey分配给第三方应用的appKeyStringN

appSecrect分配给第三方应用的appsecrectStringN

appName分配给第三方应用的名称StringN

4、调用获取授权码接口:+ (void)preGetMobileAccessCode:(NSString *)bussinessType

completion:(successHandler)completion

failure:(failureHandler)fail;

输入参数:参数名参数说明数据类型可空bussinessType业务类型,固定填写“jy”NSStringN

completion登录成功的回调代码块blockN

failue登录失败的回调,失败有两种情况,根据error.code来判断。blockN

输出参数:参数名参数说明数据类型可空accessCode授权码,天翼账号授权码,时效性60sStringN

msg如果result不等于0,会有相应的错误信息提示,用UTF-8编码StringN

operatorTypeCT电信,CU联通,CM移动,UN其他StringN

result操作结果返回码,0 表示操作成功intN

3.2.3 通过API 调用

除了通过SDK方式进行调用外,合作方还可以通过API直接调用天翼账号平台获取授权码接口,接口调用

详情如下:

接口定义接口名称preGetMobile.do

接口描述调用该接口进行判断,是否可以取号

承载协议HTTP

承载网络公网

请求方式POST

数据格式请求参数以form表单形式提交,返回数据类型为:Json/JsonP

约束

接口URLhttp://open.e.189.cn/openapi/networkauth/preGetMobile.do

公共请求参数说明

平台仅支持以POST提交数据,请求参数个数固定,如下表所述:字段名称描述clientId开发者在注册应用的时候由天翼账号开放平台分发的AppID

clientType设备类型,具体说明参见附录3.4设备类型

format目前仅支持json和jsonp格式

version调用的接口版本号,填v1.5

signsign=HMAC-SHA1(clientId+clientType+format+version+ 请求参数, appSecret)

备注:参数需按照参数名称升序排序后,最后拼接值进行签名。appSecret为应用信息对应的应用密钥,签名加密算法详见

sign生成示例:

第一步:拼装参数String encryValue=clientId+clientType+format+paramKey+paramStr+version

第二步:把相加后的encryValue值使用HMAC-SHA1算法加密:

appSecret是综合平台颁发的应用信息对应的应用密钥

String sign=HMAC-SHA1(encryValue, appSecret);

请求参数:字段标识字段类型长度是否必填字段含义说明paramKeyString1024是密钥的密文密钥的密文,如RSA-1024(密钥A,公钥), 注:密钥A由合作方随机生成,公钥由天翼账号平台分配;加密算法详见

paramStrString1024是非公共请求参数密文非公共请求参数密文(使用密钥A加密,如AES(参数1=值1&参数2=值2,密钥A)),加密算法详见

非公共请求参数

此参数用于加密成paramStr,如paramStr=AES(参数1=值1&参数2=值2,密钥A),如paramStr=AES(timestamp=12321321521& bussinessType=qh,密钥A)字段标识字段类型长度是否必填字段含义说明modelString50否手机型号

systemString50否手机操作系统

networkTypeString50否移动网络类型2G;3G;4G;other

onlineTypeString20否上网方式0:仅移动数据网,1:wifi加移动数据网,2:仅wifi

callbackString100否使用jsonp格式的回调方法

timeStamplong是时间戳15分钟内有效

operatorTypeString10否手机卡运营商CT电信,CU联通,CM移动,(双卡手机传二个,以英文逗号分割)

bussinessTypeString4是业务类型固定填写“jy”

注:提交给账号平台参数:公共参数+请求参数,需要提交的参数为:clientId、clientType、format、paramKey、paramStr、version、sign

-----------------------------

电信响应参数  密文字段标识字段类型字段含义说明msgString返回信息描述如果result不等于0,会有相应的错误信息提示,用UTF-8编码

resultint操作结果返回码0 表示操作成功(返回信息参照“成功返回结果”);如result=30002,那么data会返回加密后的多个认证地址,由合作方主动并发请求,以第一个获取成功的状态码为准

dataString数据包的密文,需要使用密钥A来解密,解密算法详见data参数说明  字段标识字段类型字段含义说明accessCodeString授权码/td>天翼账号授权码,时效性60秒

operatorTypeString运营商标识CT电信,CU联通,CM移动,UN其他

成功(result=0)返回结果

Json示例:{

"result": 0,

"data": "a35336711c70456cb883f4f224e9a259"

}

jsonp示例:jQuery16107903810819167506_1484623928047({

"result":"0",

"msg":"认证成功",

"data": "a35336711c70456cb883f4f224e9a259"

})

result为30002时返回结果:data会返回加密后的多个认证地址,由合作方主动并发请求,以第一个获取成功的状态码为准,返回成功的结果如(result=0时的结果一致)

Json示例:{

"result": 30002,

"msg": "redirect other operator",

"data": "a35336711c70456cb883f4f224e9a259"

}

Json示例:jQuery16107903810819167506_1484623928047({

"result": 30002,

"msg": "redirect other operator",

"data": "a35336711c70456cb883f4f224e9a259"

})

data参数的值a35336711c70456cb883f4f224e9a259解密后结果为:{"urls":["http://www.cmpassport.com/openapi/gateway.do?sourceid=157&code=4b964e12df

c133a56b0c7449e0e4d74501b98gt1&msgid=93aa0102d1a3485989320fba798d57f6&notifyUrl=

https://open.e.189.cn/openapi/networkauth/spcallback/cm/callBackMobile.do&timestamp=

20170511150307064","http://mdn.open.wo.cn/net/rnm.do?sequenceNumber=8202000636cc4ff68

3e7bf9bb3176568&apiKey=chinatelecom&sign=abc3bade9ccb04265eb319a75e51e0fc&notifyUrl=ht

tps://open.e.189.cn/api&unikey=4741e8dfac6f46aa8ccc31b91505e4c1&timestamp=1494486187174"]}

--------------------

第二步:合作方平台调用手机号校验接口【调用此接口,按返回状态计费】

在调用预取号接口,结果为认证成功后,第二步是合作方平台调用服务端手机号校验接口,获得校验结果。调用获取手机号码接口需要传入第一步获取的授权码。

接口定义接口名称verifyMobile.do

接口描述调用该接口进行验证手机号是否正确操作

承载协议HTTPS

承载网络公网

请求方式POST

数据格式请求参数以form表单形式提交,返回数据类型为:Json/Jsonp

约束服务端调用,需要提供IP白名单

接口URLhttps://open.e.189.cn/openapi/networkauth/verifyMobile.do

公共请求参数说明字段名称描述clientId开发者在注册应用的时候由天翼账号开放平台分发的AppID

clientType设备类型,具体说明参见附录3.4设备类型

format目前仅支持json和jsonp格式

version调用的接口版本号,填v1.5

signsign=HMAC-SHA1(clientId+clientType+format+version+请求参数, appSecret)备注:参数需按照参数名称升序排序后,最后拼接值进行签名。appSecret为应用信息对应的应用密钥,签名加密算法详见

sign生成示例:

第一步:拼装参数String encryValue=accessCode+callback+clientId+clientType+format+mobile+timeStamp+version

第二步:把相加后的encryValue值使用HMAC-SHA1算法加密:

appSecret是综合平台颁发的应用信息对应的应用密钥

String sign=HMAC-SHA1(encryValue, appSecret);

请求参数字段标识字段类型长度是否必填字段含义说明timeStamplong20是时间戳精确到毫秒

callbackString100否使用jsonp格式的回调方法jsonp方式

accessCodeString256是访问令牌

mobileString64是手机号可以使用MD5或SHA256加密后传输,如mobile加密后,则algorithm必须传MD5或者SHA256;如algorithm为空,则视mobile为明文传输

algorithmString10否号码加密方式只支持MD5和SHA256,明文不需传该参数

电信响应参数字段标识字段类型长度字段含义说明msgString256返回信息描述如果result不等于0,会有相应的错误信息提示,用UTF-8编码

resultint5操作结果返回码0 表示操作成功

isVerifyint4验证结果 0:一致,1:不一致,2:无法判断

openIdString32用户在该应用下统一标识,可以唯一标识一个用户

成功返回结果

Json示例:{

"result": 0,

"msg": "操作成功",

"isVerfiy ": 0,

"openId ": 7823idkdi9didkkda323

}

3.3计费标准

1、合作方平台调用手机号校验接口,成功返回匹配验证结果时(返回匹配或不匹配)计费。

2、按照状态码返回值的情况下计费,详见下表。除此之外的其他状态码值,我们承诺不收取任何费用。

计费口径:verifyMobile.do接口,result=0 且 isVerify=0或1字段标识字段含义说明result操作结果返回码0 表示操作成功

isVerify验证结果

0:一致

1:不一致

2:无法判断0和1:计费

2:不计费

3、具体服务价格可向商务人员咨询。

3.4 demo下载

接口调用Demo:http://id.189.cn/source/files/OpenApiDemo.zip

取号Demo:http://id.189.cn/source/files/GetMobileDemo.zip

免密认证+校验相关资源:http://id.189.cn/api?initialSrc=/html/api_detail_475.html

附录

客户端类型详见 《客户端类型》

天翼账号sdk android,开放平台-文档相关推荐

  1. android 平台接口文档,开放平台-文档

    3.配置权限清单 (1) 在AndroidManifest.xml配置权限 (2)配置权限说明 权限用途INTERNET允许应用程序联网 CHANGE_NETWORK_STATE允许程序改变网络连接状 ...

  2. php登录接口开发文档,登录接口 - 阿里TV开放平台文档 - php中文网手册

    账号相关 接口的demo在TestAccount.java里 授权查询 接口说明:判断用户是否授权,该接口立即返回当前授权状态.若未授权可调用 登录授权接口. 前置条件:无 函数原型:public s ...

  3. tv端h5_H5展现接口 - 阿里TV开放平台文档 - php中文网手册

    APP启动自动显示H5接口 接口说明: APP启动时可自动打开推广页,需要阻塞APP,等到onWebClose的回调后再继续.数娱后台可配置有效或无效该H5页面 函数原型: public static ...

  4. android 开放平台开发,OPPO开放平台上线Android 12适配文档

    OPPO 近日悄然在开放平台添加了 Android 12 适配文档,该文档可帮助 App 开发者更好地兼容 Android 12. 虽然文档内还没有任何内容,但这标志着 OPPO 已经开始了 Andr ...

  5. android制作开放平台,OPPO 开放平台上线 Android 12 适配文档

    IT之家 5 月 17 日消息OPPO 近日悄然在开放平台添加了 Android 12 适配文档,该文档可帮助 App 开发者更好地兼容 Android 12. 虽然文档内还没有任何内容,但这标志着 ...

  6. CTS(16 )---Android 兼容性定义文档

    Android 兼容性定义文档 欢迎阅读 Android 兼容性定义文档 (CDD).本文档列举了设备需要满足哪些要求才能与最新的 Android 版本兼容.为了与 Android 兼容,设备实现必须 ...

  7. 小程序、微信公众号调用监控摄像头直播开放接口文档

    为了满足各行业用户使用监控视频直播业务需求,云事通公司拟定发布基于WEB方式,M3U8视频调用对接接口如下,前端需要部署我们智能网关,然后推流到我们云平台,支持市场主流监控摄像头厂商的接入,欢迎大家咨 ...

  8. W3C近期要闻:与Mozilla MDN合作联合开发Web平台文档

    作者 | W3C中国 「OpenWeb开发者」依托于BOW(Brillant Open Web)团队,是一个专门的 Web 技术建设小组,致力于推动 Open Web 技术的发展,将不定期为读者同步W ...

  9. 美摄SDK 局部特效接入文档

    美摄SDK 局部特效接入文档 1.0版本 目      录 1.局部特效... 4 2.编程原理... 4 3.SDK支持... 4 4.参数ID.. 4 5.开发实例1.局部正方形与椭圆... 5 ...

最新文章

  1. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏
  2. 【 MATLAB 】Contour plot of matrix(矩阵的等高线图)
  3. 【C#】C#抽象类及其方法
  4. Debian7 apt源设置
  5. 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)
  6. 在vs 2008中使用iis来调试,或者说在iis中集成vs 2008的调试
  7. Treap树(堆树)
  8. jQuery 插件 autocomplete 的使用
  9. 算法与数据结构 第1章 当我们谈论算法的时候,我们在谈论什么?
  10. 计算机组成原理中wr是什么,计算机组成原理第8章习题指导.pdf
  11. 手机安装python模块吗_你不知道的Python模块安装教程
  12. Centos7.4虚拟机和主机能互ping,却ping不了百度
  13. oracle使用心得(3)——PLSQL导出pde文件乱码
  14. 计算机网络期中考试总结反思,期中考试总结反思600字
  15. fastqc v0.11.8
  16. Jump gameII
  17. 远程控制桌面,外网电脑PC手机ios安卓mac远程桌面连接内网linux和windows主机,史上最全最详细图文教程
  18. 卸载Autodesk系列之后电脑屏幕灰白怎么解决
  19. Windows上使用VLC插件的方式在IE浏览器上播放RTSP视频流
  20. 报表和专业BI有什么区别?

热门文章

  1. c语言三角形的面积编码,C语言求三角形面积代码知道
  2. 新加固态硬盘后,如何迁移操作系统到固态硬盘上?
  3. Flink CEP编程
  4. Java是世界上最好的语言?会是未来第一编程语言吗?
  5. java是最简单的语言吗_Java不是最简单的编程语言,可为什么全世界都在用?
  6. java错误日志打印问题
  7. 使用Nginx搭建Http文件服务器
  8. 苹果笔记本能玩英雄联盟吗_英雄联盟手游可以玩云顶之弈吗 LOL手游玩法一览_英雄联盟手游...
  9. [记录]安卓手机安装谷歌服务
  10. oracle flashback archive,ORACLE 11G flashback archive