WAP(H5)端应用开发指南

[隐藏]

交互流程图

一张图看懂WAP(H5)对接:通过拼装参数后的URL显示天翼账号登录WAP(H5)页面,用户认证成功后开发者获取code,通过服务器使用code换取accessToken,再通过“获取用户信息”API接口拿accessToken换取手机号码等信息。


1535510559911031153.jpg

注意:

“蓝色流程”由合作方实现对接,流程序号与本文标题序号章节相对应。        

“绿色流程”由天翼账号实现,合作方可进行了解。


1 接入准备

接入方在天翼账号开放平台申请企业开发者、应用APPID、及免密登录权限,详见《接入流程》SDK及SDK DEMO下载,详见《天翼账号登录相关资源》


2.应用场景

主要应用于合作方WAP页面接入天翼账号登录认证的场景,如天翼云WAP版和189邮箱WAP版。目前天翼账号WAP门户(e.189.cn)已经接入WAP登录框,可以进行体验。

编组 39.png


3 能力对接

3.1 对接指引(获取code)

3.1.1 接口说明

应用账号登录模块,通常包括账号登录及注销功能,因此,天翼账号在WAP应用对接上,分别提供WAP登录页接口和注销登录账号接口,协助合作方应用分别实现登录及注销功能,以提供完整的账号使用流程。


3.1.2 实现WAP应用登录

合作方WAP应用在用户点击登录时,跳转到天翼账号提供的统一的WAP登录页,实现WAP应用登录,用户登录天翼账号后重定向返回给合作方认证处理结果。

接口定义

接口名称autoLogin.do
接口描述WAP登录页接口,应用于WAP登录界面
承载协议HTTPS
承载网络公网
请求方式GET
数据格式redirect
WAP接口URL

https://open.e.189.cn/api/logbox/oauth2/wap/autoLogin.do

请求参数:包含公共请求参数和非公共请求参数

1)公共请求参数:

天翼账号支持以GET方式提交数据,请求参数个数固定,如下表所述:

字段标识说明
appId开发者在天翼账号开放平台申请获取的应用ID
clientType统一为:20100
format统一为:redirect(用于重定向接口的显示说明)
version调用的接口版本号:v1.1
paras使用appSecret对所有传入参数采用XXTea加密,并且按照接口详细规范中定义的参数(除appId、clientType、format、version、sign)拼接,不要求参数顺序。                      

例如:paras = XXTea((a=value1&b=value2&…),appSecret)

备注:appSecret转16进制后进行加密,加密算法后的值只有数字和全大写字母

sign

签名算法:
sign=HMAC-SHA1(appId+clientType+format+version+paras,appSecret).toUpperCase()
备注:注意保持签名的各字段顺序正确,签名算法后的值只有数字和全大写字母

2)非公共请求参数(paras中需要加密的参数):

字段标识说明数据类型长度可空
timeStamp时间戳,毫秒Long18N
returnURL

重定向返回URL(returnURL如带参数,整个returnURL需进行URL编码)

String1024N

templateId


模板ID,若需新增模板,需提供模板给予综合平台进行模板配置

默认:0

Integer

1
Y

loginType

其他登录类型

1|2:免密登录失败后,优先账密登录,保留短信登录

2|1:免密登录失败后,优先短信登录,保留账密登录

1:免密登录失败后,只有账密登录,无短信登录

2:免密登录失败后,只有短信登录,无账密登录

默认:1|2

String

3
Y

qaUrl

遇到问题链接

String

1024
Y

otherLoginUrl

其他登录方式链接(免密失败后跳转的自定义链接)

String

1024
Y

state


用于保持请求和回调的状态,登录请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

String32
Y

响应参数:

字段名称描述
appId开发者在天翼账号开发平台(join.e.189.cn)申请获取的应用ID。
paras使用appSecret对所有传入参数采用XXTea加密,并且按具体接口详细规范中定义的参数拼接,不要求参数顺序
例如:paras=XXTea((a=value1&b=value2&…),appSecret)。
sign签名算法公式:HMAC-SHA1(appId+paras,appSecret)

paras解密得到如下数据:

字段标识说明数据类型长度可空
result0:成功1:失败Integer10N

timeStamp

时间戳yyyy-MM-dd HH:mm:ss,其中HH 取值为00-23,时区为东八区(接入方必须判断时间戳的有效性,以防放攻击)

String

19

N

code


2分钟内一次有效(服务端调用)

String

32
N

state


用于保持请求和回调的状态

String

32
Y


返回结果

重定向到指定的URL,如http://returnURL?appId=123&paras=123&sign=123。returnURL按照本接口规范定义的参数处理方式接收和处理。


3.1.3 实现注销登录接口

用户在合作方WAP网站应用登录后需要退出登录时,合作方调用此接口,请求天翼账号注销用户登录,天翼账号清除用户登录信息后,根据传入的returnUrl返回合作方 。

请求参数:包含公共请求参数和非公共请求参数    

接口定义

接口名称unifyAccountLogout.do
接口描述注销登录接口,为合作方注销登录令牌,清除登录用户信息(该接口需在前端/浏览器调用)
承载协议HTTPS
承载网络公网
请求方式GET
数据格式redirect
约束用户已登录
WAP接口URLhttps://open.e.189.cn/api/account/unifyAccountLogout.do

请求参数:包含公共请求参数和非公共请求参数

1)公共请求参数:

天翼账号支持以GET方式提交数据,如下表所述:
字段标识说明
appId开发者在天翼账号开放平台申请获取的应用ID
clientType客户端类型:20100
format目前仅支持json格式,统一为:redirect(用于重定向接口的显示说明)
version调用的接口版本号:v1.1
paras使用appSecret对所有传入参数采用XXTea加密,并且按照接口详细规范中定义的参数(除appId、clientType、format、version、sign)拼接,不要求参数顺序。
例如:paras = XXTea((a=value1&b=value2&…),appSecret)
sign签名算法:
sign=HMAC-SHA1(appId+clientType+format+version+paras,appSecret).toUpperCase()
备注:注意保持签名的各字段顺序正确,签名算法后的值转换为全大写

2)非公共请求参数(paras中需要加密的参数):

字段标识说明数据类型长度可空
userId统一账号的userId。Long18Y
udbUserIdUDB账号名称String15Y
productUid基地账号原userId,可能为空,而且和appId有关String30Y
timeStamp时间戳,毫秒Long18N
returnURL重定向返回URL(returnURL如带参数,整个returnURL需进行URL编码)String1024N

响应参数:

字段名称描述
appId开发者在天翼账号开放平台申请获取的应用ID
paras使用appSecret对所有传入参数采用XXTea加密,并且按具体接口详细规范中定义的参数拼接,不要求参数顺序
例如:paras=XXTea((a=value1&b=value2&…),appSecret)。
sign签名算法公式:HMAC-SHA1(appId+paras,appSecret)

paras参数解密得到以下数据:

字段标识说明数据类型长度可空
result0:成功1:失败Integer10N
timeStamp时间戳yyyy-MM-dd HH:mm:ss,其中HH 取值为00-23,时区为东八区(接入方必须判断时间戳的有效性,以防重放攻击)String19N

返回结果:

重定向到传入的returnURL,如http://returnURL?appId=123&paras=123&sign=123。returnURL按照本接口规范定义的参数处理方式接收和处理



3.2通过code获取accessToken

通过code获取accessToken,具体可到以下文档了解:

《通过code获取accessToken》

3.3 获取用户信息

通过获取用户信息接口,在用户登录后可以获取用户昵称、手机号码、头像等信息,需要对接获取用户信息能力,具体可到以下文档了解:

《获取用户信息》



3.4 DEMO下载

为各位开发者提供更便捷的对接方法,我们提供DEMO,使用流程如下:

3.4.1 DEMO下载(JAVA)

介绍

    1.导入lib里的jar包

    2.完善com._21cn.open.config.LoginboxConfig里TODO处的参数

    3.执行com._21cn.open.main.WapLoginbox的main方法可得WAP登录框地址

DEMO下载

3.4.2 DEMO下载(PHP)

介绍
1.new LoginBoxDemo($appId, $appSecret, $returnURL)
2.执行$LoginBoxDemo->wap()方法可得WAP登录框地址

DEMO下载