本文为您介绍了号码认证服务的不同功能下使用SDK的常见问题及解决方法。
一键登录和本机号码校验相关FAQ
问题概览
首次取号时,App网络通信正常,但号码认证一直失败的原因?
检测SIM卡是否欠费,能否通过移动数据上网。
Android国内某些厂商的系统,Wi-Fi网络权限与移动数据网络权限是分开管理的,检查App是否仅仅只有WLAN网络权限,而缺失移动数据网络权限。
checkEnvAvailable函数返回false?
检查是否插入SIM卡。
检查是否开启移动数据。
Android双卡手机一键登录过程中,使用哪张移动数据卡进行认证?
使用默认移动数据卡进行一键登录认证。
若终端使用的是中国联通SIM卡的5G移动数据,导致一键登录获取本机号码失败,其解决方法是什么?
您可在networkSecurityConfig清单文件中配置联通域名enrichgw.10010.com
解决此问题。
初始化接口checkEnvAvailableWithComplete一直返回NO?
您可根据该顺序进行排查:
手机SIM卡是否处于已激活、不欠费的状态。
手机SIM卡的移动数据是否开启。
App的网络权限是否开启。
设备是否有代理。当您开启VPN,再进行一键登录操作时,中国联通号码会出现源IP错误、中国电信号码会出现800008错误、中国移动号码会出现103111错误,请关闭VPN之后或者打开飞行模式再关闭之后进行重试。
云控制台上是否创建了方案号。
创建方案号中的BundleID是否与项目中使用的保持一致。
设备时间设置是否标准,不能修改手机时间戳提前或延期。
是否调用了setAuthSDKInfo接口。
移动卡出现crash【[UAReachability reachableType]: unrecognized selector sent to instance】,该怎样解决?
在主工程中单击Project,选择
,添加-all_load和-ObjC。登录Token存在失败吗?
存在。
偶然出现:由于网络波动导致网关断开、网络不可用、供应商服务端异常、业务方服务端异常等因素。
持续出现:需要运营商协助排查来解决问题。
一键登录服务一般是4G或者4G+Wi-Fi情况下,如果使用3G或2G的网络会怎么样?
2G和3G网络下接口请求失败或超时概率较高。三大运营商支持的网络环境,请参见支持哪些网络环境?。
经常超时怎么办?
首先确保您的SIM卡没欠费,其次通过Safari打开某个网址来确认移动网络是否正常,最后确认超时时间(单位:s)是否设置正确。检查无误后超时的原因可能为:
2G和3G网络下接口请求失败或超时概率较高。
切换网络过程中网络不稳定,出现超时的概率较大。
H5本机号码校验类FAQ
为什么使用中国联通4G网络,依然获取不到本机号码校验Token?
原因有以下几种:
使用了物联网卡。物联网卡通过装置在各类物体上的SIM卡、传感器、二维码等,经过接口与无线网络连接,可以实现人与物体、物体与物体间的沟通和对话。
中国联通不支持接入点为wap的网络取号。
UC和QQ浏览器开启免流模式可能会导致取号不成功。
SDK公共问题FAQ
问题概览
若出现权限相关问题,该怎样做?
检查App的权限是否可以正常申请。正常引用aar,权限会自动merge。若权限没有merge,需要添加如下权限。
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission
android:name="android.permission.CHANGE_NETWORK_STATE" />
获取Token失败,一般有哪些原因?
手机设置检测网络,三大运营商网络在4G网络成功率较高。
接口超时时间是否过短,建议3000 ms~5000 ms。
检测SIM卡是否欠费。
检查网络设置,是否可以移动数据网络上网。
在切换SIM卡过程中,需要等网络稳定后,再使用认证登录功能。
返回错误码600005,手机终端不安全有哪些原因?
⼿机⽹络是否连接了代理。
⼿机是否处于hook状态,或者安装了相关的hook框架。
App是否处于attached状态。
⼿机是否被root。
是否在模拟器环境中运⾏。
App是否处于调试状态,使⽤getReporter.setLoggerEnable(true)可以关闭此项检测。
内存泄漏的种类有哪些?为什么会出现内存泄漏?
Toast内存泄漏
协议没勾选点击⼀键登录按钮显示Toast,退出授权⻚⻚出现内存泄漏。解决办法是
AuthUIConfig.setLogBtnToastHidden(true)
隐藏默认Toast,根据点击事件的code⾃⼰显示Toast即可。⻚⾯⾮法修改,当授权⻚号码栏、⼀键登录Button、协议栏出现重叠或者遮挡时点击⼀键登录按钮,显示Toast⻚⾯⾮法修改,可通过查看图层解决重叠问题。
TokenResultListener内存泄漏
SDK内部会持有外部设置进来的TokenResultListener,在⼀键登录功能使⽤完毕之后通过
PhoneNumberAuthHelper.setAuthListener(null)
将回调置空即可。
setAuthSDKInfo的密钥如何获取?
登录号码认证产品控制台,在左侧导航栏选择 ,单击对应的方案操作列密钥 ,在出现的弹框上单击复制密钥。
此密钥是号码认证方案的应用密钥,不是阿里云账户的AccessKey、AccessSecret。
建议将该密钥在App服务端维护,可以减少因客户端存在的安全隐患而导致的密钥泄露风险。
什么情况下会返回600005页面非法修改?
添加悬浮窗控件遮挡隐私协议、一键登录按钮以及掩码,或将字体颜色设置为透明,SDK会回调600005页面非法修改。
当使用移动卡请求一键登录不成功,可能出现的报错日志及解决方法有哪些?
报错日志 | 解决方法 |
ontokenfaild{"code":"600011","msg":"vendorCode:200025, msg获得的手机授权码失败:{\"resultCode\":\"200025\",\"authType\":\"1\",\"authTypeDes\":\"WIFI下网关鉴权\",\"resultDesc\":\"发生未知错误\"}","requestCode":0,"vendorName":"CMCC"} | 请检查依赖v4包com.android.support:support-v4版本是否高于25.4.0或者v7包com.android.support:appcompat-v7版本是否高于25.4.0。 |
ontokenfaild{"code":"600011","msg":"vendorCode:200028, msg获得的手机授权码失败:{\"resultCode\":\"200028\",\"authType\":\"1\",\"authTypeDes\":\"网络鉴权\",\"resultDesc\":\"网络异常\"}","requestCode":0,"vendorName":"CMCC"} | 请检查清单文件application标签下是否配置了android:usesCleartextTraffic="true"、android:networkSecurityConfig文件。如果设置了networkSecurityConfig文件,请在networkSecurityConfig文件里面配置。
|
SDK使用过程的安全性如何保障?
调用过程是基于运营商及阿里云的电信级运维安全保障。
通过移动数据网络发起请求,获取AccessCode。
说明AccessCode的有效次数为一次,使用后立即失效。中国移动、中国联通、中国电信三大运营商手机号码的AccessCode有效时长分别为2分钟、60分钟、10分钟。
通过AccessCode和手机号请求认证结果。在此过程中,我们会基于阿里云访问密钥对服务端请求进行鉴权。