产品功能

产品简介

闪验整合三大运营商,支持国内三网手机号段,Android/iOS手机,可通过一键获取用户手机号的SDK产品,建立以手机号码作为去中心化的开放账号体系,提升注册转换效率的必备功能。
image.png

隐私条款

根据工信部要求,需要在打开APP时弹出相关用户隐私条款政策,充分告知关于用户隐私数据收集范围及用途。
例如:APP的隐私条款中需增加闪验相关的隐私条款
“为了改善注册及登录界面用户体验,集成第三方SDK一键登录服务:闪验SDK,用于帮助实现用户一键登录行为。为了实现网关取号技术,闪验SDK需要获取IP地址、网卡(MAC)地址、国际移动设备识别码(IMEI)、OAID(替代imei)、sim卡信息,并会收集手机机型、系统类型、系统版本、网络环境、网关取号报错日志等用于改善SDK性能。
关于闪验SDK采集终端用户数据的范围、用途及安全措施请参照上海璟梦信息科技有限公司闪验SDK运营方的隐私政策。”
详见:隐私条款

image.png
附件6:中国电信、中国联通5G消息业务平台行业客户接入接口规范0908v1.0.3.pdf

使用场景

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

能力申请

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

信息 是否必填 审核后是否可修改
应用名称 必填 可以
Android包名 必填 可以
Android包签名 必填 可以
iOS Bundle ID 必填 可以
服务器白名单配置 非必填 可以

SDK评估

SDK支持系统

Android4.1以上,iOS8.0以上

SDK集成增量体积

Android SDK:全部增量-860kb
aar资源包470kb,so资源包根据用户自身集成
主流3个架构(arm64-v8a,armeabi,armeabi-v7a):485kb
armeabi-v7a一个架构:288kb

**iOS **SDK:ipa增量1.3M

SDK取号的原理

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

初始化

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

取号阶段

在用户无感知的情况下进行网络判断、蜂窝数据网络切换和网关取号等操作(以上操作均需消耗一定时间),并缓存凭证scrip,以便在用户登录时大大缩短拉起授权页的耗时(因为取号已完成)
成功获取到临时令牌;三大运营商临时令牌有效期如下
移动——48小时;
联通——1小时;
电信——1小时;
取号所需网络环境
运营商取号能力是通过数据网关实现,取号过程须在数据流量打开的情况下才能进行。(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获取超时时间
安卓:
联通默认超时间隔:4秒
移动默认超时间隔:8秒
电信默认超时间隔:4秒
** iOS:**
移动/联通/电信默认超时间隔:4秒

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

token有效时间
移动:2分钟
联通/电信:1小时
移动/联通/电信token有效期最短1分钟

服务端接口联调

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

使用条件

网络制式

①数据流量环境下,SDK功能正常使用
②在WiFi+数据网络情况下,SDK会调用方法强行将当前的网络通道由WiFi通道切换到数据流量通道
③在纯WiFi环境下,SDK功能无法使用。SDK内部做了判断,会弹出相应提示

三网网络环境条件

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

关于Android双卡问题

①SDK的一键免密登录功能和本机校验功能的实现都必须通过数据流量通道。
②SDK内部会获取当前手机的数据流量卡运营商,所以双卡情况下,一键免密登录和本机校验都是对当前的数据流量卡进行获取。  

关于iOS双卡问题

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

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、查找本地程序包配置appid跟appkey是否跟后台一致
4、查找闪验后台的appid跟appkey,是否正确获取
5、查看资源导入是否异常