iOS对接指南

[隐藏]


交互流程图

合作方接入天翼账号免密功能,在免密登录成功后,天翼账号平台返回用户信息及token有效期内,合作方可以通过token获取用户信息。
1535508975075057028.jpg


注意:

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

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

成功对接效果图:

1-06.jpg

1 接入SDK的工作配置

1.1 前期准备

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

SDK及SDK DEMO下载,详见《天翼账号登录相关资源》

1.2 导包

(1)将EAccountSDK文件夹(包括EAccountSDKArchive.framework)复制到自己的文件夹目录下;

(2)在工程中添加EAccountSDK文件(在工程名上点击右键弹出菜单后选择“Add Files to ‘xxxxxx’” 其中‘xxxxxx’为你的工程名字,如图1所示)

1535508085226043181.jpg

(3)弹出的窗口选择EAccountSDKArchive.framework文件,在选项“Copy items into destination group’s folder(if needed)”打钩,务必记得添加目标项目“Add to targets”选择你的目标工程,最后点击”Add”

(4)查询工程是否添加了EAccountSDKArchive.framework文件,(点击工程项目,点击目标TARGETS,选择Build Phases,展开Link Binary With Libraries,查看是否存在EAccountSDKArchive.framework文件,具体操作看图2。)如果工程没有添加EAccountSDKArchive.framework文件则需要手动添加(点击”+”按钮,如图3弹出选择框,选择“Add Other ...”按钮,在弹出的选择文件中,选择EAccountSDKArchive.framework,点击“Open”按钮)。

1535508109133012529.jpg

1535508128751040757.jpg

(5)增加动态库 

   libz.1.2.8.tbd

   libsqlite3.0.tbd

   libc++.1.tbd

(6)在项目的info.plist文件中添加Privacy - Camera Usage Description字段,值设置为NSCameraUsageDescription(iOS10适配)

 1.3 静态库编译配置

在工程中引入静态库后,需要在编译时添加-force_load编译选项,避免静态库中加载不完全造成程序崩溃。(具体方法:点击TARGETS,点击“Build Settings”,搜索框内搜索Other Linker Flags,在“Other Linker Flags”选项后添加” -force_load”,添加-force_load和EAccountSDK.framework/EAccountSDKArchive 文件所在的路径,请根据自己文件的实际路径进行设置,如图4)

1535508154337073609.jpg

 1.4 添加相机和相册权限及FaceID权限

如下图:

1535508174715021993.jpg

Privacy - Photo Library Usage Description

Privacy - Camera Usage Description

Privacy - Face ID Usage Description

1.5 添加资源包

将HTMLResource.bundle添加到工程。

1535508214487064736.jpg

1535508230220078085.jpg

注意,这里要选择Create folder references

1535508251240002136.jpg

查看build phases的copy bundle resources里边有没有HTMLResources.bundle文件,如果没有,点击加号按钮,添加对应的资源包

1535508314905097027.jpg

添加后的效果图。

 1.6 添加应用Logo

接入方可以根据自己产品需要接入自己产品的Logo,如果不接入自己产品的Logo,将使用默认的天翼账号Logo。接入方添加自己应用的Logo的方法如下: 在添加好资源包的基础上,替换资源包里边默认的logo图(/images/topIcon/topIcon-logo.png文件);

注意:目录结构和名称不能变,logo文件的名称必须为:topIcon-logo.png和topIcon-default.png; 图片尺寸都是240 * 240。

如下图:

1535508293368075676.jpg

1.7 关于bundleID的设定

(1)请确保工程的bundleID与申请appKey时所填的bundleID一致。

(2)如果需要使用企业证书重签名的bundleID进行测试,请添加+(void) settestBundleId,发布到App Stroe上的时候请确保没有该方法。

2 对接指引

2.1 在应用启动时初始化

接口调用说明:要使天翼账号SDK运行,需在调用任何其他方法前,先调用初始化方法;(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中初始化SDK)。

注意:请确保工程设置的bundleID与申请appKey时所填的bundleID一致。

1535508338550025429.jpg

请求参数:

参数名参数说明数据类型可空
appKey分配给第第三方应用的appKeyStringN
appSecrect分配给第三方应用的appsecrectStringN
appName分配给第三方应用的名称StringN

2.2 免密登录接口

接口定义:

接口名称login
接口描述进行免密登录

接口调用说明:在用户点击登录按钮后,调用免密登录接口,调用方法如下:

1535508363560095095.jpg

请求参数:

参数名参数说明数据类型可空
configModel登录参数配置模型,模型里边的属性见登录配置模型属性列表表。请先使用LoginConfigMode的初始化方法(initDefaultConfig)初始化,如果需要更改相应的属性,再更改。LoginConfigModelN
controller当前界面控制器,传空与不传空,动画效果不一样,传空时,SDK会新建一个window加载页面,动画为淡入。不是空的时候,会使用这个viewController来prezent出页面,动画为从底部弹出。UIViewControllerY
success登录成功的回调代码块block
N
failue登录失败的回调,失败有两种情况,根据error.code来判断。blockN


登录配置模型属性列表:

字段名字字段含义字段类型可空

showThirdLogin
第三方登录的配置,有qq、微博、微信和翼健康 4个,要哪个登录方式,就传对应的拼音,如@"qq" 或者@"qq|weixin" 或者@"qq|weixin|weibo|eHealthy"等StringN
loginWay登录方式,zm、dm、zm|dm、dm|zm等4种方式,zm代表账号密码登录,dm,代表短信验证码登录,zm|dm代表两种都有,并且优先账号密码登录, dm|zm代表两种都有,优先短信登录StringN
accountType账号类型,有mobile,email两种,两种都要的话,传@"mobile|email",否则传@"mobile" 或者@"email"StringN
loginList已经登录上的账号的accessToken组成的数组,不需要多账号功能的,可以传一个空的数组NSArrayY
hasat登录页面的登录账号是否默认加上@189.cn,yes表示有后缀,no表示没有后缀BOOLN
hideTop是否隐藏头部导航栏BOOLN
baseApp

自定义账号入口方式=免密登录失败的时/点击“切换账号”按钮时,不跳转到账号SDK的账密或短密页面,并且账号SDK会返回-899404、-8994014、-8994021。

yes,为自定义页面,接入方可自行跳转到自己的页面。

no,为跳到账号SDK的标准登录页面。(默认)

BOOLN
basicLoginTxt自定义账号入口方式的自定义文本(6到8个字符)StringN
loginModeToken过期登录账号原来的登陆类型 0 免密,1 短密,2 账密NSStringY
modifyAccount账号可否被修改,true/false, 必填BOOLY
tokenAccountToken过期登录账号,例如:18988886666或者别名账号NSStringY
tokenOpenIdtoken过期账号对应的openIdNSStringY
showQA迷你登录弹框里边是否显示帮助按钮BOOLY
showOtherLogin迷你登录弹框里边是否显示切换账号按钮BOOLY
autoLoginOnly是否只使用天翼账号的免密登录功能(不使用账号密码登录和短信验证码登录),如果传YES,并且SDK检测到不能免密登录的时候,SDK会直接返回,不在打开天翼账号的登录页面。BOOLY

biometryDelayTime

经过biometryDelayTime毫秒后,弹出生物识别框,单位为毫秒,默认200毫秒

NSInteger

         200

isBiometryEnabled

是否开启增强免密认证(生物、手势、数字均属于两步认证,该项优先级高)

BOOL

          N

isGesCodeEnabled

是否开启手势安全码(优先级中)

BOOL

          N

isDisplayGesCodeTrail

验证手势安全码时,是否显示轨迹

BOOL

         N

isNumCodeEnabled

是否开启数字安全码(优先级低)

BOOL

         N

响应参数:

参数名参数说明数据类型
result0表示成功,7001表示微信登录,7002表示QQ登录,7003表示微博登录,-1,表示登录失败,其他代码请查考登录回调的codeint
openId用户在该应用下统一标识,可以唯一标识一个用户String
accessToken登录成功,返回访问令牌,通过访问令牌可访问登录的数据String
atExpiresInaccessToken过期时间,以返回的时间的准,单位为秒,注意过期时提醒用户重新授权Long
rfExpiresInrefreshToken过期时间,以返回的时间的准,单位为秒Long
loginMode用户登录类型
  0: 免密登录
  1: 短信登录
  2: 账号密码登录 
  3: 二次校验(使用账号密码登录时,如果设备不是用户授信设备,需要用短信登录进行二次校验)
String
refreshToken应用刷新令牌,accessToken过期后可通过刷新令牌换取新accessTokenString
timeStamp时间戳String
msg返回信息String
userRiskRating账号风险等级(1-4,数值越高,风险越大)int
ipRiskRatingIP风险等级(1-4,数值越高,风险越大)int


登录回调的code

错误码解释
0操作成功

-899405

网关认证失败

-8994014

免密登录页面,用户点击了其他登录方式

-8994021预取号失败
-8994011内部错误
-899406网络错误
-899404用户取消登录
-899401网络不可达
7003微博登录
7002QQ登录
7001微信登录

 

2.3 免密登录接口(迷你弹框)

接口定义:

接口名称MINILogin
接口描述进行免密登录

在用户点击登录按钮时,调用弹框登录接口,SDK会在当前控制器上弹出登录框,调用方法如下图:

1535508381464003272.jpg

请求参数:

参数名参数说明数据类型可空
configModel登录参数配置模型,模型里边的属性见3.3的登录配置模型属性列表。。LoginConfigModelN
controller当前界面控制器,传空与不传空,动画效果不一样,传空时,SDK会新建一个window加载页面,动画为淡入。不是空的时候,会使用这个viewController来prezent出页面,动画为从底部弹出。UIViewControllerY
success登录成功的回调代码块blockN
failue登录失败的回调,失败有两种情况,根据error.code来判断。blockN

响应参数:

参数名参数说明数据类型
result0表示成功,7001表示微信登录,7002表示QQ登录,7003表示微博登录,-1,表示登录失败,其他代码请查考登录回调的codeint
openId用户在该应用下统一标识,可以唯一标识一个用户String
accessToken登录成功,返回访问令牌,通过访问令牌可访问登录的数据String
atExpiresInaccessToken过期时间,以返回的时间的准,单位为秒,注意过期时提醒用户重新授权Long
rfExpiresInrefreshToken过期时间,以返回的时间的准,单位为秒Long
loginMode用户登录类型
  0: 免密登录
  1: 短信登录
  2: 账号密码登录 
  3: 二次校验(使用账号密码登录时,如果设备不是用户授信设备,需要用短信登录进行二次校验)
String
refreshToken应用刷新令牌,accessToken过期后可通过刷新令牌换取新accessTokenString
timeStamp时间戳String
msg返回信息String
userRiskRating账号风险等级(1-4,数值越高,风险越大)int
ipRiskRatingIP风险等级(1-4,数值越高,风险越大)int


登录回调的code

错误码解释
0

操作成功

-899401网络不可达
-899404用户取消登录
-899405网关认证失败
-899406网络错误
-8994011内部错误
-8994014免密登录页面,用户点击了其他登录方式
-8994021网关取号失败
7003微博登录
7002QQ登录
7001微信登录

3 免密登录后的流程

3.1 获取用户信息

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

《获取用户信息》

3.2 刷新accessToken

accessToken是调用账号登录的调用凭证,accessToken有效期为1个月,在有效期内避免accessToken过期后,可以在用户打开应用时使用刷新accessToken接口进行刷新,具体可到以下文档了解:

《刷新accessToken》

4 附录及常见问题

4.1 登录错误返回码定义,可到以下文档了解:

 《登录返回码说明》

4.2 天翼账号SDK版本支持说明

天翼账号SDK支持IOS9及以上版本。

4.3 天翼账号SDK使用的第三方库说明

天翼账号SDK使用第三方类库包含SSZipArchive、UIWebView+TS_JavaScriptContext。