闪验、创蓝闪验

20190618

产品功能


产品简介

闪验产品兼容三大运营商手机号段及Android/iOS能手机,可通过一键获取用户手机号 ,建立以手机号码作为去中心化的开放账号体系(目前最新demo只支持安卓,IOS的demo为老版本未更新,如要测试IOS请联系商务或客服

image.png



使用场景

App注册/登录页面进行一键登录并建立账户,也可以使用在任何需要获取手机号的场景。例如:手机号绑定环节,修改/找回密码环节,支付环节验证手机号等等

image.png


能力申请

接入方需在闪验控制台认证公司资质,报备应用信息,以获取appid、appkey等参数用于SDK集成。安卓和iOS需分开申请appid,需报备的信息如下:

信息

是否必填

审核后是否可修改

应用名称

必填

可以

Android包名

安卓应用必填

不可以

Android包签名 

安卓应用必填

不可以

iOS Bundle ID

iOS应用必填

不可以

服务器白名单配置

非必填

可以


SDK评估


SDK支持系统

Android4.0以上,iOS8.0以上


SDK集成增量体积

Android SDK本体500K,so资源包根据用户自身集成大约200K,总计700k

iOS SDK 1.1M


SDK取号的原理

通过运营商的数据网关获取号码,因此需要用户开启数据网络量并且给予应用蜂窝数据权限才能使用,当信号弱或者网络有干扰时,时延会高于平均值,取号成功率降低。

image.png


初始化

不经初始化SDK无法调用,主要用于账号验签,以及相关配置信息拉取。


取号阶段

在用户无感知的情况下进行网络判断、蜂窝数据网络切换和网关取号等操作(以上操作均需消耗一定时间),并缓存凭证scrip,以便在用户登录时大大缩短拉起授权页的耗时(因为取号已完成)

成功获取到临时令牌;三大运营商临时令牌有效期如下

移动——72小时;

联通——1小时;

电信——10分钟;

取号所需网络环境

运营商取号能力是通过数据网关实现,取号过程须在数据流量打开的情况下才能进行(WiFi和数据流量同时打开时,SDK会强制切换到数据流量执行取号逻辑)

当用户如果关闭数据流量、或改变运营商分配给手机的IP地址(如VPN代理,路由器VPN、手机VPN、手机热点),都将无法取号;若当前信号弱或者网络有干扰时,时延会高于平均值,取号成功率降低


超时设置

SDK默认超时设置为4000ms,也可使用SDK提供的方法设置取号超时,单位为毫秒。



授权阶段

1.闪验SDK必须经由用户授权才能正常执行获取号码的行为,在授权页上会展示手机掩码提供给用户确认

2.运营商根据来自SIM卡的访问请求,识别该数据流量对应的手机号码,加密后返回手机掩码及临时凭证。

3.SDK获取返回的临时凭证并展示运营商授权页


授权页的拉起

由用户触发或者自动触发的方式执行拉取授权页方法

当取号缓存scrip有效时,SDK能几乎无耗时地拉起授权页;

当取号缓存scrip已失效(用户换卡、缓存有效期已过等)或不存在时,SDK需要先消耗一定时间进行取号,取号成功才能拉起授权页。此取号阶段的用户交互(如取号缓冲页)由业务方自行处理。


授权页元素的自定义和插入自定义控件

对页面内的元素的自定义,请参考SDK开发文档的章节;

若希望在页面中插入其他第三方登录方式,或其他内容,可通过插入自定义控件实现,请参考SDK开发文档的章节

注:自定义的控件不允许覆盖SDK默认的UI,如运营商授权协议


授权页的销毁

为提供更灵活的授权页处理方式,SDK将大部分的授权页关闭逻辑交给业务方处理,可分为以下两种模式:

A.授权页面自动销毁

1.在授权登录页面,当用户主动点击左左上角返回按钮时,授权页面会自动销毁;

2.安卓 SDK,当用户点击手机的硬件返回键(相当于取消登录),授权页面会自动销毁;

3.当用户设置一键登录或者其他自定义控件为自动销毁时,得到回调后,授权页面会自动销毁


B.开发者手动销毁

1.当开发者设置一键登录回调为手动销毁时,可控制授权页销毁时机,一键登录成功后继续等待,在得到服务端传回的用户信息后执行手动销毁,如果失败则选择跳入其他登录方式,并执行销毁操作

2.当开发者设置自定义控件为手动销毁时,在监听到回调后执行销毁操作。

其他具体细节请参考开发文档。


一键登录阶段

用户授权并点击一键登录,发起一键登录授权请求后,SDK后台向运营商发起校验请求,运营商收到token请求后进行校验,运营商校验通过后传递token到App客户端


token获取超时时间

联通默认超时间隔:30秒

移动默认超时间隔:8秒

电信默认超时间隔:10秒


token获取的限制

token有效期3min,一次有效;

移动限制:同一用户(手机号)10分钟内获取token且未使用的数量不超过30个


服务端接口联调

服务端需要凭token置换用户授权的本机号码,接口可报备服务端出口IP地址后才能正常使用,不建议从客户端直接调用。



使用条件

1SDK使用网络问题

①数据流量环境下,SDK功能正常使用

②在WiFi+数据网络情况下,SDK会调用方法强行将当前的网络通道由WiFi通道切换到数据流量通道

③在纯WiFi环境下,SDK功能无法使用。SDK内部做了判断,会弹出相应提示

2)三网网络环境条件

目前闪验SDK支持中国移动2/3/4G、联通3/4G、电信4G的取号能力

3)关于Android双卡问题

SDK的一键免密登录功能和本机校验功能的实现都必须通过数据流量通道。

SDK内部会获取当前手机的数据流量卡运营商,所以双卡情况下,一键免密登录和本机校验都是对当前的数据流量卡进行获取。  

(4)关于iOS双卡问题

   取流量卡进行免密登录或者本机认证

(5)oppo等部分终端网络问题

  Oppo手机第一次登录必须使用纯流量环境。

由于oppo操作系统增加了应用的数据网络使用权限,在手机wifi和数据网络同时打开时,应用首次打开,将默认使用wifi数据通道,且无法通过SDK强制切换到数据通道取号,会导致取号失败


SDK内在逻辑

注意:此逻辑为闪验SDK内在逻辑,仅供客户参考。

闪验每个步骤依次执行,当预取号步骤失败时,后面不需要重复执行预取号步骤的方法以及后续的拉取授权页的步骤和方法,减少无效调用

image.png




产品交互

注意:判断登录态

对于已经登录的用户任何页面不需要调用闪验的逻辑和步骤

交互流程

闪验有完善的返回码,根据返回码可考虑如下交互流程,下图可在新标签内放大查看

image.png


image.png


1、闪验初始化失败:返回失败 转入:原有流程

2、预取号失败:返回失败 转入:原有流程

3、拉起授权页失败:返回失败 转入:原有流程

4、授权页点击事件:左上角返回+物理返回按钮,返回:点击事件返回码  转入:登录前界面

5、授权页点击事件:一键登录按钮,返回:超时或无法校验  增加交互:一键登录失败,将转入短信注册 然后定时跳转转入:原有流程

6、授权页点击事件:选择其他方式登录  返回:自定义事件控制 转入:原有流程

 

额外产品逻辑

1、在后台配置针对闪验服务的开关,用做回滚备用方案

2、闪验自定义界面的控件 

a、【其他方式登录】适用于:用户双卡情况下当前流量卡不是想登录的号码,用户希望登录的手机号码在别的手机上

b、【微信/QQ/微博快速登录组件】适用于:把闪验作为主要登录逻辑第一层可集成快速登录组件

3、在用户登录后,可缓存用户cookie,并在下次用户打开时,让用户进入已登录状态


客户案例

 产品逻辑.png



解决问题 

1、打印报错信息,根据报错信息,查看返回码文档,并进一步解决问题

2、查找本地网络问题 是否因为网络环境不支持导致调用起不来

3、查找本地程序包配置appidappkey是否跟后台一致

4、查找闪验后台的appidappkey,是否正确获取

5、查看资源导入是否异常