关于ios:MobTech-秒验常见问题

56次阅读

共计 8940 个字符,预计需要花费 23 分钟才能阅读完成。

双卡双待手机如何登录

针对双卡双待手机只取以后流量卡号

用其余手机号如何登录

应用传统验证形式登录,例如验证码登录

一键登录只反对 4G 吗

电信反对 4G,5G 网络取号,挪动, 联通反对 5G,4G, 3G, 2G 网络取号但在非 5G,4G 网络状况下容易取号失败

是否反对三网

反对

能够用在 H5 或网页上吗

临时不能够

对数据流量有什么要求

免密登录能力必须通过运营商网关取号,所以必须开启挪动数据流量能力实现一键登录,但流量只消耗一点点

对手机型号有要求吗

没有

反对国外手机号吗

不反对

手机号码咱们会存储吗

有存储,须要将手机号传给运营商。

是否须要本人服务器配合

是的,须要服务器配合的,客户端那边只能是返回运营商,预取号以及 token 等信息,不能返回手机号,必须要对接服务端,把这些参数传给服务端那边,服务端那边就会返回手机号

这个平安嘛 sim 卡是能够复制的

卡复制了是没用的,因为 SIM 卡外部是有加密信息的,那个信息是必须由运营商进行解析能力获取到的数据,安全性是没有问题的。

如果曾经审核了安卓的,还须要审核 iOS 的怎么办

在从新提交,填写上 ios 的 Bundle id 就行,不会影响安卓的,然而如果 ios 的之前曾经审核过了,那么再次提交会笼罩掉之前审核的,是同一个 key 的话,会笼罩的。能够从新再创立个利用,提交秒验包名审核

秒验是否反对集体应用

秒验的话,已上线利用公司集体都可应用,公司官网什么的审核的时候能够不写,然而未上线利用 集体临时无奈接入 公司须要填写相干信息,官网上公司信息需与 app 业务性质统一。没有官网的话,有 app 介绍下载页面也能够,下面也需有所属公司名称。

新人专享礼 · 新用户接入即送(秒验 +SMSSDK)零碎主动送

集成秒验一键登录 SDK 或短信 SMSSDK 的新用户即可收费取得 1000 条应用额度。7.1 开始新注册并实现认证的用户会在 1 小时内到账 30 元,无应用期限
注:

  1. 秒验与 SMSSDK 短信流动,参加用户只可二选一,不可同时加入两项流动;
  2. 1000 条应用额度以金额模式充入账户,赠送额度不予开具发票、不能提现;
  3. 赠送流动只反对中国大陆,国外,港澳台都不反对;

秒验是怎么免费的

是在客户端失去 token 之后,而后调用服务端接口置换手机号胜利之后才会免费

秒验充值单价的问题

不能累积计费,以单次最多充值的来计费

为什么要先调用预取号接口,间接调用登陆接口是否能够

能够的,预取号接口一方面次要是为了减速一键登陆接口的响应速度,另一方面可能提前预知以后设施 / 网络环境是否能够进行一键登陆,所以咱们倡议先调用预取号接口,胜利之后在调用一键登陆接口,预取号接口能够屡次调用,第一次预取号胜利后,1 小时内是有本地缓存的,所以 1 小时内的第二次预取号会走本地缓存,速度十分快。

预取号超时工夫默认是 4s,能够通过接口设置,预取号工夫间接取决于运营商,所以如果预取号工夫较长只能检查一下网络环境,另外多尝试几次,有时可能是网络稳定引起的。

服务端置换 token 报错 token 非法

token 非法是客户端和服务端的 Appkey 不一

iOS 端 status=5119302, res=null, error= 未找到配置, seqid=316869966368829440}

报这个谬误个别是审核没有通过的问题,用户能够本人先到后盾查看下有没有提交我的项目里的包名审核,如果查看不到,能够给到 AppKey 和 Bundle id 让 Mob 技术人员去查

iOS 端预取号失败,谬误的申请包签名 Code = 6119127,resultCode=103102…desc= 谬误的申请包签名

这个谬误个别可能审核过了,然而 Bundle id 有加空格或者换行,须要找审核的人让运营商那边查下

iOS 端 resultCode:104201,desc:token invalid,seqid:186063876160012288,status:5119507

optoken 过期,不存在,或者曾经应用过了

iOS 端 status:4119310,res:null,error:“token 未找到”

如果是 form 表单传的就要先 encode 传到本人的服务端,不然会被本义。也就说在调服务端接口传参之前,在 iOS 端先把 token 先 encode 了,在传过来

iOS 端挪动报 获取挪动 token 失败 Code=1003“(null)”UserInfo=【获取 token 失败、谬误的申请签名、103101】(老版本,倡议降级)

工程中的 Info.plist 中增加 bundleId 对应的 key-value。搜寻 Xcode 我的项目工程中的.strings 国际化文件,如果 app 存在本地国际化文件,请在每个本地国际化文件中增加 CFBundleIdentifier,各个语言版本文件中都须要增加。

iOS 端拉起受权页办法无回调[错误码为: 170206](老版本,倡议降级)

请查看拉起受权页接口配置参数传参,传入模型是否为空或者传入的 model.currentViewController 是否为以后控制器

确认配置是否传入 vc,拉起页面时 vc 必须为以后正在显示的 vc;若传 self,需确认以后 self 就是以后 vc

iOS 端预取号间断报 170606 或者是 20101(老版本,倡议降级)

运营商限度不容许短时间内间断屡次频繁调用登录接口,请过段时间再试,测试时不要短时间内频繁调用

iOS 端秒验报错问题:170001,谬误形容:私网 IP 有效,中国联通,网络谬误,error_code=1102

能够试试开关下航行模式,这个是运营商基站缓存的问题,比方你在 A 基站获取的是 IP1,这时你走到跨基站 B 拿到的是 IP2,那么这时的 IP1 就生效了,只有重启手机或开关航行模式或重启流量能够刷新 IP,这个是联通运营商外部 SDK 的缓存机制没有做好,和联通反馈过的,然而还是有局部地区没有解决好。

iOS 端秒验 2.1.2 版本,挪动卡能够拉起界面,电信卡拉不起界面

倡议用户更新版本,之前旧的 SDK 可能调用的电信 sdk 是老的接口,可能是电信 SDK 问题,更新到新的 SDK,曾经能够

iOS 端 Demo 预取号 resultDic: (null) error: Error Domain=SecVerifyErrorDomain Code=170001 “(null)” UserInfo=”(null)”

这个是联通的旧版 SDK 的域名问题,联通那边已提交证书从新审核通过,已解决或者是更新咱们的 SDK 到最新版本

iOS 端 Error Domain= 拉起受权页失败,请查看 SecVerifyCustomModel.viewController 是否为顶层 vc Code=6119144

传的 VC 有问题,要么没有传,要的传的不是以后 VC

iOS 端如果登陆胜利了然而没有主动回收界面,是什么起因

可能是配置了手动敞开,而后又没调敞开的办法

iOS 端怎么在受权界面上加自定义按钮之后,push 到其余的界面

代理办法里能够拿到以后受权页 vc 和 nav,间接 push 就行了, 例如 [weakSelf.authPageVc.navigationController pushViewController:vc animated:YES]; 能够参考 demo

iOS 端 Error Domain= 拉起受权页失败,请查看 SecVerifyCustomModel.viewController 是否为顶层 vc Code=6119144 “(null)”

拉起了受权界面,并且报这个谬误,看是不是设置了自定义转场动画,而后工夫超过了 1 秒,咱们外部判断了如果超过 1 秒没有收到 present 回调就认为 present 失败,提醒为传入的 vc 异样,,如果这边只设置了 mobModel.modalPresentationStyle = NSNumber(value: UIModalPresentationStyle.overFullScreen.rawValue),看看有没有设置【SVSDKHyVerift setDelegate:self】,如果有,去掉试下。

iOS 端自定义 UI,加了一个其余形式按钮,点击这个按钮,怎么判断用户是否批准了隐衷协定呢

能够用一个全局变量在 这个代理办法中

/** 受权页点击相干事件 */
-(void)svVerifyCheckBoxClick:(UIViewController *)authVC userInfo:(SVSDKHyProtocolUserInfo*)userInfo checkBoxValue:(BOOL)isSeleted;

记录下 checkBoox 的状态,这个在点击 checkBox 时会触发。

iOS 端 Error Domain=preVerify failed (timeout) Code=6119124 “(null)”) 预取号超时

首先保障必须有开 4G 挪动流量,如果有开了,而后 wifi 也开了,还是超时,看下 wifi 是否有设置代理,个别是网络问题,只能多试试,或者关掉在开下网络看看

iOS 端电信不论是调用预取号接口或者是登陆接口都报以下谬误:Error Domain=success Code=6119129 UserInfo=”(null)”

这个是因为阿里云的包里的电信包与咱们的电信包版本不一样,导致抵触问题,找开发解决发包即可

iOS 端在本地我的项目中秒验登陆没有问题,然而公布上线之后拉起受权页始终转圈圈可能是什么起因

可能在公布中把 Bundle id 改掉了,须要查看这块

iOS 端秒验 预登录的时候 始终报这个 6119125 预取号异样(外部异样)

运营商报的谬误,无奈确定起因,多测试几次试试

iOS 端预取号接口的话,如果有很多页面都有点击登陆按钮的话,是放在启动的时候调用,还是在对应的页面登陆前调用

哪一个页面须要调用,在那个页面的 viewdidiload 或者 viewwillappear 里调比拟好,而后登陆按钮间接调拉起页面就行了,不须要在调用预取号接口

iOS 端预取号失败 Error Domain=check the operator appKey/appSecret Code=6119121 “(null)”

iOS 用成安卓的包名,申请初始化,而后拿不到配置就报这个谬误,须要去后盾查看 iOS 提交审核填写的包名是否与 ios 我的项目里的包名统一

iOS 端本机认证和一键登陆的区别

本机认证实质上来说是对输出的手机号进行验证操作,一键登陆实质上是从三大运营商那里获取用户的手机号从而防止用户手动输出手机号,两者都须要去咱们的服务端申请操作。一键登录之所以须要受权页面是因为须要用户受权运营商提供手机号给第三方,本机认证不须要,所以运营商的 SDK 就没有提供相干的受权页面。

iOS 端错误码:5119105,error:operatorToken 参数不正确

这个问题能够查看下客户端调用接口,有的人可能是调用的本地认证的接口获取的参数上传的,而不是一键登陆的接口

iOS 端 ”message”:”token 非法 ”,”phone”:null

(1)token 重复使用,屡次应用同一个 token 或者应用了曾经校验过的 token

(2)服务端应用的 appkey 和客户端不匹配,appkey 谬误

(3)token 由客户端传递给服务端后,被本义了,能够比对下客户端和服务端,须要留神下客户那边是不是用 form 表单传给服务端的,如果是用 form 表单传的话,须要用 urlencode 一下,不然像加号什么的会被本义成空格,会造成问题

(4)token 和 optoken 传反了

iOS 端后盾数据的含意,如下图

初始化:初始化是 SDK 的外部 init 办法,ios 的话,只须要在 plist 文件里配置了 appkey 就是初始化咱们的 SDK,也能够调用代码来初始化

#import <MOBFoundation/MOBFoundation.h>   
[MobSDK registerAppKey:@"2e76e2e95a7ad" appSecret:@"e83de04bc9d850784ca01b5fcfbc886e"];

预取号:就是对接文档中的预登陆(preLogin)接口

拉起受权页:就是调用咱们的一键登陆接口,会弹出咱们的受权界面,如果是用的无 UI 的版本,那这个步骤数据会为 0

获取 token:就是用户点击受权登录也就是一键登录时的接口

置换号码:就是最终取号的接口

从“获取 token”开始就是用户理论登陆操作,获取 token 代表用户发动受权登陆申请,并胜利获取到加密手机号,置换号码相当于拿到解密手机号,置换号码代表的是登陆胜利,举例:100 个用户发动一键登录申请,99 个用户客户端胜利拿到加密手机号,而后 99 个客户端发动解密手机号申请,98 个用户客户端胜利拿到解密手机号并登录胜利。根本就是这个意思。

从预取号到 token 两头散失的用户是不合乎一键登陆条件,主动跳转到其余登陆形式

iOS 端自定义一键登录点击获取 token 期待 loading

在 -(BOOL)svVerifyShouldShowLoadingLoginClick:userInfo: 返回 NO 即可,而后自行添加自定义 loading,也须要自行管制暗藏

// 将要显示内置的一键登录期待 loading, 返回 NO 则不显示内置 loading, 可在此增加自定义 loading
-(BOOL)svVerifyShouldShowLoadingLoginClick:(UIViewController *)authVC userInfo:(SVSDKHyProtocolUserInfo *)userInfo{dispatch_async(dispatch_get_main_queue(), {[SVProgressHUD showWithStatus:@"这是内部设置的自定义 loading"];
});
return NO;
}

iOS 端自定义隐衷协定未勾选提醒

在 -(BOOL)svVerifyShouldAlertUnChecked:userInfo: 返回 NO 即可,而后自行添加自定义提醒,也须要自行管制暗藏

// 将要显示内置的未勾选协定提醒, 返回 NO 则不显示内置提醒, 可在此增加自定义提醒
-(BOOL)svVerifyShouldAlertUnChecked:(UIViewController *)authVC userInfo:(SVSDKHyProtocolUserInfo*)userInfo{dispatch_async(dispatch_get_main_queue(), ^{UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"请浏览并勾选批准协定" message:@"这是一个内部增加的自定义提醒,代替 sdk 内置提醒" preferredStyle:(UIAlertControllerStyleAlert)];
        [alert addAction:[UIAlertAction actionWithTitle:@"批准" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {[SVSDKHyVerify setCheckBoxValue:YES];
        }]];
        [alert addAction:[UIAlertAction actionWithTitle:@"返回" style:(UIAlertActionStyleCancel) handler:nil]];
        [authVC presentViewController:alert animated:YES completion:nil];
    });

    return NO;
}

iOS 端跳转自定义的隐衷协定 web 页(依据相干合规要求,协定页不得暗藏)

// 将要跳转协定 web 页, 返回 NO 则不主动跳转, 可在此自行跳转自定义 web 页
-(BOOL)svVerifyShouldLinkPrivacy:(UIViewController *)authVC userInfo:(SVSDKHyProtocolUserInfo*)userInfo{

    // 获取以后点击的协定相干信息
    SVSDKHyPrivacyText * privacyTextObj = userInfo.privacyTextObj;

    if (privacyTextObj.textLinkString != nil) {dispatch_async(dispatch_get_main_queue(), ^{if (@available(iOS 9.0, *)) {SFSafariViewController * web = [[SFSafariViewController alloc]initWithURL:[NSURL URLWithString:privacyTextObj.textLinkString]];
//                [authVC.navigationController pushViewController:web animated:YES];
                [authVC presentViewController:web animated:YES completion:nil];
            } else {UIAlertController * alert = [UIAlertController alertControllerWithTitle:privacyTextObj.text message:privacyTextObj.textLinkString preferredStyle:(UIAlertControllerStyleAlert)];
                [alert addAction:[UIAlertAction actionWithTitle:@"返回" style:(UIAlertActionStyleCancel) handler:nil]];
                [authVC presentViewController:alert animated:YES completion:nil];
            }
        });

        return NO;
    }
    return YES;

}

iOS 端 resultDataJson =”,”seqid”:”355777667998416896″}

有可能是 SDK 运营商版本和我的项目运营商版本不统一,导致问题

iOS 端 Error Domain= 外部网关谬误 Code=6119128

这个问题是手机以后网络问题,开关航行模式看看是否能够

iOS 端应用代码被动调用一键登陆按钮

[loginButton sendActionsForControlEvents:(UIControlEventTouchUpInside)];

能够用代码去执行点击事件

iOS 端联通报一些:外部网关谬误,无数据网络链接,无奈拉起受权界面等等

须要先确认下用户应用的是什么版本的秒验 SDK,可能版本还很低,像 2.x 等版本呀,须要更新到最新版本才行,老版本的联通 sdk 是有很多 bug 问题的

iOS 端会不会因为传入的是 tabbarvc 这个 vc,导致受权页不呈现问题

咱们这个原理是用传入的 VC 去 present 受权页面,然而 present 自身不肯定相对能弹出来,这个是零碎的机制,如果您的 vc 不是最上层,或者 vc 上曾经有 alert 弹框,这种状况下就没法在 present 受权页,和这个 vc 自身是 vc 还是 tabbarvc 没关系的。

iOS 端如何晓得用户勾选协定的状态

取 checkBox 控件的 isSelect,或者 uiConfigure.checkDefaultState.boolValue

iOS 端集成 3.1.2 或以上秒验须要留神的中央

首先 mobFondation.framework 须要更新到 3.2.28 或者以上版本,另外可能会报以下谬误如下:

须要加 Network.Framework 依赖库

iOS 端隐衷状态栏与登陆按钮是否关联

有客户问,我设置了登陆按钮两种状态,然而勾选了隐衷,为什么并没有什么变动,咱们的一键登陆按钮和勾选框是没有状态关联的,须要用户本人实现

iOS 端如何获取运营商名字和隐衷,做一些解决

例如我想改运营商信息为别的国家语言什么的,运营商和协定能够在代理办法种获取,办法里的 userInfo 里有_uiElement 字段,外面有 privacyName 和 privacyUrl,如果须要自定义隐衷栏的语言,就把隐衷控件换成本人的,后续的跳转详情都用本人的就行。也能够把以后隐衷控件的那个 privacyName 文本替换成你须要的,不过这种没有测过,可能不失效,最好本人从新写新的隐衷空间,这种必定能够的,另外有人可能是间接在改 SVSDKHyPrivacyText 配置,这个是提前配置的,这个只是个传值用的 model,改了并没无效的,代理里拿控件手动改 attrbuteText,或者从新写一个控件

-(void)svVerifyAuthPageViewDidLoad:(UIViewController *)authVC userInfo:(SVSDKHyProtocolUserInfo *)userInfo{}

iOS 端为什么手动设置以后受权页 checkBox 勾选状态有效

这个办法[SVSDKHyVerify setCheckBoxValue:YES]; 是受权页面曾经显示后用来切换的,是改状态用的,如果须要设置默认值的话须要用 uiConfigure.checkDefaultState = @(YES);checkbox 不能通过控件间接设置状态,SDK 外部是通过 model 来记录状态的,如果在里面间接改控件状态 sdk 是不晓得的。须要区别用法

iOS 端更新秒验 SDK 到 3.1.2 版本报如下谬误

Undefined symbol: OBJC_CLASS $_MOBFDeApiService

须要把 mobFoundation.framework 更新到 3.2.28 或者以上版本

题目 Android 端秒验报错 6119401

因为秒验是双端反对,如果在审核包名时,某一端没有填写,那么此端秒验将不可用:

如何从新提交审核

请留神:在后盾点击从新提交审核会影响已审核通过的利用。这种状况倡议从新在后盾创立一个新的利用,双端都提交审核,前期替换为这个新 key。

正文完
 0