一、FAQ

1、通用FAQ

  • 一键验证功能是否是由运营商支撑的?

    答:一键验证是运营商的产品,也只能由运营商做基础支撑。秒验SDK是为运营商与开发者的合作搭建一个桥梁。

  • 一键验证功能支持运营商什么网络?

    答:支持三网一键登录,本机号码校验。也可以只对接单网,因为有的开发者已经对接过某一个或者两个运营商,这种情况下我们可以定制化对接。目前支持的网络有:移动3/4G,联通3/4G,电信4G。

  • 简单描述一键验证的取号原理?

    答:一键验证通过运营商网关获取当前终端手机用户的号码。当用户点击验证时,数据网络处于开启状态,终端手机向运营商后台发起网络请求,运营商识别到此次网络请求的来源,在经过运营商自有算法匹配后,然后将匹配后得到的手机号码返回给SDK,于是开发者就可以通过SDK得到手机号了。

  • 简要描述一下产品的计费规则。

    答:验证按次收费。一键验证-按客户获取到手机号为准。每次验证,会先做预扣款,在一小时内,根据实际结果做结算,如果验证过程出现异常,本次订单不扣款。客户可以在后台查询详单。也可以查询今日之前的统计报表。

  • 如何判断调用一键验证方法是否成功?

    答:调用SDK后,返回时会提供错误码,

    比如,00000为成功,并返回手机号,其余为异常情况。

    建议开发者捕捉错误码,可用于日常数据分析。

  • 虚拟号能否被识别?

    答:可以,支持虚拟号。

    只要是能够使用运营商数据网络的手机号都支持。

  • SDK的大小,集成后对开发者app体积的影响有多少?

    答: android:安装后大小:2MB(包含资源)

    iOS: 安装后大小:2MB

    总结,对开发者的app的体积增加不大.

    如果对应用体积要严格要求的客户,秒验可以提供定制化方案。

  • 一键验证目前的性能如何?

    答:目前可以做到一秒内验证2000次。

  • 开发者获得平台提供的密钥后,如果被其他开发者窃取,是否有可能造成偷量问题?

    答:不会。因为在验证时,除了密钥的识别,还有app的包信息验证,比如包签名,而这些信息是其他开发者无法获取的。

  • 秒验SDK对手机操作系统有哪些版本要求?

    答:版本最低要求分别为:ios 8.0 ;Android 5.0。

  • 是否支持携号转网的号码?

    答:支持。与虚拟运营商号码同理,只要能连接数据网络就没问题。只要能连上数据网络,就说明被运营商识别了。

  • 目前支持哪些号段?

    答:理论上支持所有号段。

    移动号段:

    134 135 136 137 138 139 147 148 150 151 152 157

    158 159 172 178 182 183 184 187 188 198

    联通号段:

    130 131 132 145 146 155 156 166 171 175 176 185 186

    电信号段:

    133 149 153 173 174 177 180 181 189 199

  • 用户发起一键验证后,看到带有4个星号的手机号时,是否已经取得完整手机号?是否已经计费?

    答:看到带有星号的手机号时,SDK并未获得完整手机号,在这一步也还没计费。

  • SDK是否会有收集终端手机用户的敏感信息?

    答:没有。收集用户敏感信息是违规行为。

    从验证原理上来说,平台不需要收集用户的手机信息就可以验证,因为这一过程是由运营商完成。如果开发者有疑虑,可以自己监测,或者递交给第三方验证机构监测。

    同时,秒验与开发者会签署保密协议,如果合作过程中发现此类问题,我司将负法律责任。

  • 微信、QQ、支付宝、微博等第三方登录相比,一键验证有什么区别?如何配合使用?

    答:其他第三方登录,都是获得第三方平台的账号ID,而一键验证是获得手机号。二者是可以同时出现,也可以相互补充的。比如,用户通过微信登录APP后,可以回头再使用一键验证绑定手机号,以后也可以使用一键验证登录。同时,如果用户一开始是通过一键验证登录或者注册的,后期也一样可以绑定微信号。

  • 双卡问题

    答:双卡情况下获取的是正在使用流量的手机号码,暂不支持获取非流量卡的手机号码,期待运营商后续完善此功能

  • 在平板电脑上是否可以使用一键验证?

    答:支持已装sim卡并开启流量的平板电脑使用一键验证功能。

  • wifi状态下是否可以使用一键验证?

    答:wifi状态与使用一键验证无关,只要开启数据流量即可使用一键验证功能

  • 除了一键验证,SDK还提供中还有哪些产品?

    答:短信验证码

  • 秒验的对接文档以及实例代码在哪?、

    答:文档地址:http://my.wlwx.com/site/index.html;如您需要离线文档,可与我司客服获取

  • 秒验可以给开发者的app带来哪些利好?

    答:

    1.提升用户体验:用户无需输入手机号和输入验证码,注册登录时间比传统登录方式快10倍

    2.安全提升 :秒验采用运营商网关取号,避免短信劫持,保障了APP的登录安全。

  • 是否可以自行报备应用并立即自动完成?

    答:可以自行提交应用到我司后台, 因需安全确认和运营商要求,需要由我司人工确认并审核通过。

  • 我想使用秒验,要找谁?

    答:您可以与我司客服了解秒验产品

    联系人:张经理

    手机号: 18606069289

    邮箱:2880089700@qq.com

  • 验证界面是否可以让开发者自定义?

    答:支持授权页半自定义,一键验证授权页是由运营商SDK提供,目前支持半自定义授权页面

  • 一键验证成功率多高?

    答:据我司后台数据统计,移动、电信、联通三网的成功率可以达到95%以上;

    失败主要原因: 网络问题和部分机型问题;

  • 一键验证失败后是否会影响用户体验,如何面对这个问题?

    答:不会影响用户体验,

    方案:需要开发人员优化APP的登录逻辑,一键验证失败后开发者快速切换到传统登录方式(短信验证),就可以让用户是无感知的进行其他方式登录。

  • 是否可以提供API模式对接?

    答:暂不支持,运营商暂未开放API模式对接。

  • 一键验证的应用场景有哪些?

    答:一键登录适用一切互联网APP注册、登录环节、修改密码、支付环节等重要身份验证环节。

  • 企业认证须要审核很久吗?

    答:工作时间30分钟以内,非工作时间3小时内。

  • 是否支持海外网络取号?

    答:不支持,只限中国大陆内使用。

  • 是否支持小程序和H5?

    答:目前只支持客户端的(Android和iOS)上使用,暂不支持web端H5、小程序等。由原生app套壳的H5,只要开发者能够使用JS调用原生即可支持。

  • 为什么SDK还没有与服务器交互就可以在一键登录授权页显示用户手机号码了?

    答:APP通过调用SDK跟运营商的服务端进行交互,进行预取号,从运营商那里获取一个掩码,展示给用户进行确认,

    实际上并没有获得完整手机号码,授权页的目的,就是要让用户确认即将授权APP去获取并使用他的手机号码,

    掩码的作用就是让客户知道我们即将获取的号码。

  • sdk支持js调用么?

    答:我们提供了ox_sdk_bridge.min.js和参考的web_demo,可以参考demo中调用例子。你也可自行编写js与原生互调的代码完成sai_sdk的功能对接;

  • sdk取号的access_token有效期是多久?

    答:2分钟。已经跟三大运营商确认过,最短的有效期为2分钟,请在获取到登录token后及时获取用户信息(手机号)。

  • 一键验证功能可以直接对接服务端api?

    答:不可以,自android2.0,iOS1.4.3及以后,提供了SDK获取accessToken,需要对接服务端api,从服务端获取手机号码。也可直接使用就的方式一键获取手机号,但这种方式不安全,请使用新的方式获取登录token,从服务端获取手机号,完成自己的登录业务。

  • 一键验证SDK更新需要重新打包吗?

    答:SDK提供的是原生的开发集成具包,开发者可以根据SDK更新的内容选择更新SDK,但更新集成SDK后是需要打包发布的。

  • 本产品支持模拟器吗?

    答:一键验证功能必须在真机上才能正常运行。

  • 一键登录和本机校验的区别?

    答:一键登录必须显示用户授权页面,开发者经用户授权后可获得号码,适用于注册、登录等场景;

    本机号码校验没有授权页面,只需要传入一个校验号码,返回待校验号码是否本机的校验结果。

  • 一键登录,移动端通过sdk获取access_token给开发者服务端调用mobileQuery获取手机号成功后,还需要调用本机号吗校验吗?

    答:一键登录获取到的手机号已经能确保是本机了,不需要再调用本级手机号验证?

  • 预取号数据能重复使用么?

    答:已经跟运营商确认,预取号数据只能使用一次。为了保证预取号数据正常,android 有效期统一为10分钟。

  • 联通请求参数非法?

    答:校准本地时间

2、Android FAQ

  • android支持的minSdkVersion 是多少?

    答:minSdkVersion 19

  • android SDK集成方式是什么?

    答:我们提供jar包,资源文件,jnilibs,你可根据文档进行集成。

  • android sdk中的jnilibs需要都使用吗?

    答:电信使用.so文件,提供了arm:32、64位,x86:32与64,部分引用第三方库如不支持64,则可以只引入32库,并且指定引用以32为模式运行;

    如下:

    defaultConfig {
    ...
    ndk { abiFilters "armeabi" }
    }
  • 横竖屏切换问题,需要注意。

    答:授权页使用弹窗风格style后,在manifest.xml?件中配置

    “android:screenOrientation="portrait"”,或者在当前授权页设置横竖屏模式,在8.0系统版本上会报“Only fullscreen opaque activities canrequest orientation”异常,解决方法:8.0系统上横竖屏指定需要指定前一个页面的方向,并且删 除manifest.xml 的screenOrientation的属性配置。

  • 有关权限READ_PHONE_STATE添加与使用?

    答:针对 READ_PHONE_STATE 低于android Q,android6.0及以上的版本需要动态申请,在manifest中添加。sdk-v2.1.4之前的版本需要申请此权限, 自2.1.4以后这个权限若校验,若不添加可能会影响取号的速度;

  • sdk内部有做android X迁移吗?

    答:v2.3.2版本已经做了迁移,SDK包中存在androidx以及android两种资源文件,可根据您的具体需求选择相应的资源文件即可。

  • 支持android Q版本的取号吗?

    答:sdk_v2.1.4版本将完成android Q的适配,之前的版面只能在低于Q的版本上运行。

  • 授权页上设置的资源文件需要放在哪?

    答:对应放在res资源目录下的:animator,drawable,layout,mipmap,values中。配置授权页时,使用R.xx.xx传递资源。

  • android SDK能在application中初始化吗?

    答:v2.3.2版本版本之前只支持传入Activity,电信授权页禁止在非activity中调用;v2.3.2之后支持传入Application,有可能导致拉起电信授权页面失败。

  • android的包签名如何获取?

    答:打开Terminal 窗口,找到你应用发布的签名证书文件目录,输入命令 keytool -list -v -keystore D:\aaa\aaa.jks(你的项目生成的jks或key文件路径)。然后回车输入输入密钥库口令,复制MD5值,去除":"号,则为平台所需的包签名。

  • 一键登录预取号的作用是什么?

    答:如果用户调用一键登录时存在预取号成功的缓存,则无需经历取号就能迅速拉起授权页,用户体验更佳。

  • 部分安卓6.0机型纯数据网络环境取号成功,但WiFi+数据条件下取号失败,是什么原因?

    答:Android6.0系统存在bug,默认不授权 network_change_state ,导致SDK可能因为没有该权限而返回了纯wifi的结果,调网络类型会出现误判wifi+4g环境为纯wifi,而取号需要走数据网络,对于wifi+数据网络的情况,SDK由于没有WiFi切换数据网络的权限,网络环境与纯wifi无异,因此会返回取号失败的结果。

  • 手机时间设置为非北京时间会影响能力调用吗?

    答:手机当前时间不是北京时间会导致能力调用失败,无法获取token。

  • APP开发者编译app的编译指令是android9.0时为什么会能力调用失败?

    答:由于Android9.0 默认禁止http请求,开发者需要针对app作适应处理,在代码中设置如下代码才可以正常进行网络请求: android:usesCleartextTraffic="true"

  • 隐私协议必须要两个吗?

    答:默认一个运营商的,可以添加一个用户协议条款,最多可以添加两个自定义的条款。

  • 一键验证只能app接通吗?

    答:是,适用于webApp,原生app,不适用与纯h5,小程序。

  • 官网上的时间校对接口怎么使用?

    答:与wlwx服务端通讯时,有个时间误差,这个误差需要校对,校对两台服务器的时间差。

  • 秒验SDK接入需要多久,有技术支持吗?

    答:看开发者进度,我们提供在线技术服务支持。

  • 如果没有获取到手机号,登录页面会展示什么?

    答:不会,一键登录调起授权页有一定的失败,失败时请自行切换到其他登录页面完成登录。

  • 登录授权页上可以添加自定义文字banner吗?

    答:可以,但不能覆盖和删除安全号码、条款协议、登录按钮。可以调整授权上主要控件的位置,在空白处添加自定义视图。

  • 二次校验接口是客户端还是服务端使用,检验什么?

    答:sdk会下发verify_token给客户的app,这个verify_token是验证订单的一个凭证,用来服务端验证订单类型的验证记录是否安全有效。

  • 在sdk安全方面,他人知道app的appid和APPsecret就可以直接使用吗,包名和包签名能伪造吗?

    答:包名可伪造,但包签名是唯一的,不能被伪造,请妥善保存应用相关信息。一键验证功能需要 master_secret才能完成最终的取号,appid和APPsecret即使被盗用也不能正常使用。

  • res-umc文件不添加到项目中是否有影响?

    答:

    本机号校验:无影响。

    一键登录:有影响,后续自定义授权页面需在此基础之上进行修改。

  • 初始化时提示appId与包名不一致?

    答:查看应用后台所创建的APP的包名是否与所创应用的包名一致。

  • 添加res-umc资源文件拉起授权页后,背景透明界面错乱?

    答:请检查您的项目是否使用androidx,如使用,则请使用对应文件夹下的资源文件。

  • 集成成功、初始化成功,拉起授权页时提示联通、移动、电信SDK获取token失败?错误码:65036~65041?

    答:请联系并询问我们查看运营平台对应运营商的渠道是否配置、是否开启。

  • 使用联通卡双卡并且切换数据卡时,一键登录失败?

    答:切卡后请结束APP进程后重新进入即可,联通不支持再次初始化。

  • 无风险码返回?V2.3.2版本新增

    答:请联系并询问风控开关是否开启。

3、iOS FAQ

  • 一键登录和本机校验的区别?

    答:一键登录必须显示用户授权页面,开发者经用户授权后可获得号码,适用于注册、登录等场景;

    本机号码校验没有授权页面,只需要传入一个校验号码,返回待校验号码是否本机的校验结果

  • 一键登录和本机号校验的应用场景?

    答:一键登录适用于一切互联网APP注册、登录环节

    本机号校验适用于所有基于手机号码进行风控的场景。

  • 支持哪些网络环境?

    答:目前SDK支持移动2/3/4G、联通3/4G、电信4G的取号能力。

    数据网络和 数据网络+WIFI 情况下可以正常取号

    WIFI 情况下无法正常取号

  • 取号原理是如何实现的?在纯wifi环境下为什么无法使用?

    答:SDK会获取本机的IMSI,通过运营商数据网关获取当前流量卡的号码。

    通过数据流量访问基站,运营商可以通过基站内访问的IMSI来判断当前手机是否插入的这张卡,达到本机号码访问的确认。

    如果通过WIFI我们就认定 IMSI=手机号,则羊毛党可利用root或者越狱修改手机参数,进行欺诈行为,将无法确认手机卡是否插在本机之内及是否本人使用该手机号进行登录注册行为,属于不安全的行为。

  • 携号转网用户能否使用一键登录功能?

    答:携号转网不会更换号码,仅更换SIM卡,数据网络打开的前提下均可正常使用认证能力。

  • 是否支持小程序和H5?

    答:小程序:不支持。

    ​ H5:纯浏览器H5不支持;由原生app套壳的H5,只要开发者能够使用JS调用原生即可支持。

  • 一键登录的计费方式是什么?

    答:通过token成功置换到手机号码计费一次

  • 虚拟号能否识别?

    答:取决于网关是否能取号成功。虚拟运营商发的号码 如果在三家运营商的核心网有注册 就可以支持 所以会出现部分支持 有可能部分不支持的情况

  • 双卡情况下会读取哪张SIM卡?

    答:SDK仅能校验当前手机所使用的数据流量卡,所以双卡情况下,流量主卡使用的哪张就校验哪张。

  • 当网络环境不支持一键登录或获取失败时,如何进行后续操作?

    答:您可以引导用户通过短信方式进行认证

  • SDK包增量是多少?

    答:iOS SDK 1.3M

  • 获取手机号后该如何使用

    答:获取手机号成功,将tel和verify_token传给服务端,然后让服务端请求一键验证的二次验证接口进行验证手机号的有效性,token二次验证是可选接口,可以自己通过安全接口传给服务端,来让传上来的手机号登录成功

  • 授权页可以自定义吗

    答:UI界面是半自定义,具体哪些可以修改参考SDK OXOneKeyCustomModel

  • 为什么SDK还没有与服务器交互就可以在一键登录授权页显示用户手机号码了?

    答:APP通过调用SDK跟运营商的服务端进行交互,进行预取号,从运营商那里获取一个掩码,展示给用户进行确认,

    实际上并没有获得完整手机号码,授权页的目的,就是要让用户确认即将授权APP去获取并使用他的手机号码,

    掩码的作用就是让客户知道我们即将获取的号码。

  • ATS开关(Http与Https)

图片

解决方案:

info.plist中添加App Transport Security Settings->Allow Arbitrary Loads->YES

  • category导致奔溃

图片

解决方案:

Build Settings - Other Linker Flags 添加-ObjC

  • 缺少系统依赖库

图片

解决方案:

Build Phases-Link Binary With Libraries 添加libc++.1.tbd

4、服务端FAQ

  • 加密使用的时间戳是int还是string?

    答:不影响。

  • 00122错误码?

    答:时间戳错误,需要精确到毫秒

  • 15003错误码?

    答:verify_token过期(一分钟有效)

  • 服务端api调用返回code:00001?

    答:检查传递的格式是不是JSON格式,post请求;verify_token/access_token是否有效。

  • 服务端的二次校验接口及服务端api接口相关问题:

    服务端API接口为post请求,数据格式:JSON

    sign = MD5(master_secret + current_time13);

    • api_master_secret是什么?

      答:平台上应用信息对应的master_secret。

    • 签名超时?

      答:current_time13为北京时间13位时间戳,如果还是签名超时,调用校时接口查看,查看两者之间的系统时间差异,这个差不能超出一分钟。

      如果超出一分钟,请将签名所用的时间戳加上两者之间的时差。

    • verify_token超时?

      答:verify_token有效期为一分钟,请及时使用。

    • access_token超时无效?

      答:access_token有效期为2分钟,却只能使用一次。