帮助与文档

> >

一、导入SDK

1. 官网下载SDK,然后将下图中红色框标记的文件夹拖入到工程中

2 다운로드. 添加依赖库

必要

  • libc++.tbd

3 Graber download. 配置xcode项目

Build Settings中的Other Linker Flags添加”-ObjC”

二、配置plist文件 (appkey和appsecret,https)

(1).appkey和appsecret
在项目中的info.plist文件中添加键值对,键分别为 MOBAppKey 和 MOBAppSecret ,值为在MobTech官网开发者后台申请的appkey和appSecret,申请步骤点击:如何在MobTech创建应用

(2).https 配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>zzx9.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>cmpassport.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>id6.me</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>wostore.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>mdn.open.wo.cn</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
</dict>
</plist>

三、使用SDK

导入头文件

#import <SecVerify/SecVerify.h>

预取号

[SecVerify preLogin:^(NSDictionary * _Nullable resultDic, NSError * _Nullable error) { 
if (!error)
{ 
NSLog(@"预取号成功"); 
} 
else 
{ 
NSLog(@"预取号失败%@", error); 
} 
}];

参数说明:

resultDic : {“operatorName” : “中国移动”} // 可能返回 中国移动、中国联通、中国电信 다운로드.

error : error为nil,即为预取号成功.

登录

简易版登录接口
调用一次loginWithModel就会消耗prelogin返回的数据(多次调用prelogin也一样被消耗掉),所以每次在调用loginWithModel之前需要调用prelogin

// 自定义配置Model,currentViewController必传 다운로드. 
SecVerifyCustomModel *model = [[SecVerifyCustomModel alloc] init]; 
model.currentViewController = self; 
[SecVerify loginWithModel:model completion:^(NSDictionary *resultDic, NSError *error) { 
if (!error) 
{ 
    if (!error)
    {
        //需要手动关闭界面时使用
        //[SecVerify finishLoginVc:^{

        //}];
    }
    else
    {
        //需要手动关闭界面时使用
        //170602 自定义事件,手动关闭登录vc
        //170204 取消登录
        //if(error.code != 170602 && error.code != 170204)
        //{
            //[SecVerify finishLoginVc:^{

            //}];
        //}
    }
}];

响应参数说明:

error : error为nil,即为登录成功 다운로드.

resultDic 为字典类型,登录成功时返回

回调示例:
{
operatorToken = STsid00000015604144109450iqaCUUiYvQl5ZwwY7yrkblVyWk8ll96;
operatorType = CMCC;
token = 59317592973873152;
}

参数名 类型 字段含义 说明
opratorToken String 运营商token 运营商授权码,默认时效1分钟
operatorType String 运营商类型 CMCC (移动)、CTCC (电信)、CUCC(联通)
token String SDK token SecVerify 授权码

对于一些需要需要特殊回调的可以使用以下登录接口:

// 自定义配置Model,currentViewController必传 다운로드. 
SecVerifyCustomModel *model = [[SecVerifyCustomModel alloc] init]; 
model.currentViewController = self; 

[SecVerify loginWithModel:model showLoginVc:^{
    //登录vc显示        
} loginBtnClicked:^{
     //登录按钮被点击           
} willHiddenLoading:^{

                //自定义loading,隐藏回收loding
                [SVProgressHUD dismiss];

} completion:^(NSDictionary * _Nullable resultDic, NSError * _Nullable error) {

    if (!error)
    {
        //需要手动关闭界面时使用
        //[SecVerify finishLoginVc:^{

        //}];
    }
    else
    {
        //需要手动关闭界面时使用
             //170602 自定义事件,手动关闭登录vc
        //170204 取消登录
        //if(error.code != 170602 && error.code != 170204)
        //{
            //[SecVerify finishLoginVc:^{

            //}];
        //}
    }

}];

响应参数说明:

error : error为nil,即为登录成功 리니지 헤이스트.

resultDic 为字典类型,登录成功时返回

回调示例:
{
operatorToken = STsid00000015604144109450iqaCUUiYvQl5ZwwY7yrkblVyWk8ll96;
operatorType = CMCC;
token = 59317592973873152;
}

参数名 类型 字段含义 说明
opratorToken String 运营商token 运营商授权码,默认时效1分钟
operatorType String 运营商类型 CMCC (移动)、CTCC (电信)、CUCC(联通)
token String SDK token SecVerify 授权码

手动关闭登录界面

适用于,model中设置manualDismiss为 @(YES),login回调后调用
或者自定义视图中需要手动关闭登录界面
注意当错误码为(170602 自定义事件,手动关闭登录vc
170204 取消登录)不能调用

[SecVerify finishLoginVc:^{

}];

显示loading视图

适用于自定义事件,需要在登录界面显示loading场景

[SecVerify showLoadingViewOnLoginVc];

隐藏loading 视图

适用于自定义事件,需要在登录界面隐藏loading场景

[SecVerify hiddenLoadingViewOnLoginVc];

修改登录视图背景色

适用于自定义背景视图动画 (model 中设置presentAnimationDelegate),demo中有参考样例

[SecVerify setLoginVcBgColor:[UIColor colorWithRed:0/225.0 green:0/225.0 blue:0/225.0 alpha:0]];

注意事项:

1.免密登录能力必须经过运营商网关取号,因此必须在手机打开移动蜂窝网络的前提下才会成功。
2.必须先预取号成功才可以登录;

3.登录方法必须传入model,model中必须传入当前控制器。
4.登录成功使用返回的两个token和运营商类型,向服务端请求手机号等信息。 可参考服务端接入文档

四、授权页面属性修改

通过传入登录方法的Model属性,可以修改授权页面上的字体颜色等。

当前控制器

属性名 值类型 说明
currentViewController UIViewController VC,必传

登录VC设置

属性名 值类型 说明
manualDismiss NSNumber 外部手动管理关闭界面 @(BOOL),注意:设置为YES 时,点击(登录操作,切换其他用户操作) 回调成功或者失败时,一定要手动关闭登录页面(错误码为:170602,170204 除外)
presentAnimationDelegate id < UIViewControllerTransitioningDelegate > 登录vc弹出的动画效果自定义代理(UIViewControllerTransitioningDelegate)

导航条设置

属性名 值类型 说明
navBarTintColor UIColor 导航栏背景颜色
navText NSString 导航栏标题
navReturnImg UIImage 导航返回图标
navBarHidden NSNumber 导航栏隐藏(例:@(YES))
navTranslucent NSNumber 导航栏透明(例:@(YES)))
navBackBtnHidden NSNumber 导航栏返回按钮隐藏(例:@(YES))
navLeftControl UIBarButtonItem 导航栏左边按钮
navRightControl UIBarButtonItem 导航栏左边按钮
navAttributesText NSAttributedString 导航栏属性标题
navTextFont UIFont 导航栏文字字体
navBackgroundImage UIImage 导航栏背景图片
navBarMetrics NSNumber @(UIBarMetricsCompact)
navShadowImage UIImage 导航栏导航栏底部分割线(图片)
navBarStyle NSNumber 导航栏barStyle(例:@(UIBarStyleBlack))
navBackgroundClear NSNumber 导航栏背景透明(例:@(YES))

授权页背景

属性名 值类型 说明
backgroundColor UIColor 授权页背景颜色
bgImg UIImage 授权背景图片
cancelBySingleClick NSNumber 单击页面实现取消操作(例:@(NO))

授权页logo

属性名 值类型 说明
logoImg UIImage Logo图片
logoHidden NSNumber Logo是否隐藏(例:@(YES))
logoCornerRadius NSNumber Logos圆角(例:@(10))

号码设置

属性名 值类型 说明
numberColor UIColor 手机号码字体颜色
numberFont UIFont 手机号码字体
numberTextAlignment NSNumber 手机号对其方式(例:@(NSTextAlignmentCenter))
numberBgColor UIColor 手机号码背景颜色

切换账号设置

属性名 值类型 说明
switchBgColor UIColor 切换账号背景颜色
switchColor UIColor 切换账号字体颜色
switchFont UIFont 切换账号字体
switchTextHorizontalAlignment NSNumber 切换账号对其方式(例:@(UIControlContentHorizontalAlignmentCenter))
switchHidden NSNumber 隐藏切换账号按钮, 默认为NO(例:@(YES))
switchText NSString 切换账号标题

复选框

属性名 值类型 说明
checkedImg UIImage 复选框选中时的图片
uncheckedImg UIImage 复选框未选中时的图片
checkDefaultState NSNumber 隐私条款check框默认状态,默认为YES(例:@(YES))
checkSize NSValue 复选框尺寸 (例:[NSValue valueWithCGSize:CGSizeMake(30, 30)])
checkHidden NSNumber 隐私条款check框是否隐藏,默认为YES(例:@(YES))

隐私条款设置

属性名 值类型 说明
privacyTextColor UIColor 隐私条款基本文字颜色
privacyTextFont UIFont 隐私条款协议文字字体
privacyTextAlignment NSNumber 隐私条款对其方式(例:@(NSTextAlignmentCenter))
privacyAgreementColor UIColor 隐私条款协议文字颜色
privacyAgreementBgColor UIColor 隐私条款协议背景颜色
privacyAppName NSString 隐私条款应用名称
privacyProtocolMarkArr NSArray<NSString*> 协议文本前后符号@[@"前置符号",@"后置符号"]
privacyFirstTextArr NSArray<NSString*> 开发者隐私条款协议名称(第一组协议)@[@"名字",@"url",@"分割符"]
privacySecondTextArr NSArray<NSString*> 开发者隐私条款协议名称(第二组协议)@[@"名字",@"url",@"分割符"]
privacyLineSpacing NSNumber 隐私条款多行时行距 CGFloat (例:@(4.0))
privacyWebTitle NSAttributedString 隐私条款WEB页面标题
privacyWebBackBtnImage UIImage 隐私条款WEB页面返回按钮图片

登陆按钮设置

属性名 值类型 说明
loginBtnText NSString 登录按钮文本
loginBtnTextColor UIColor 登录按钮文本颜色
loginBtnBgColor UIColor 登录按钮背景颜色
loginBtnBorderWidth NSNumber 登录按钮边框宽度 (例:@(1.0))
loginBtnBorderColor UIColor 登录按钮边框颜色
loginBtnCornerRadius NSNumber 登录按钮圆角 (例:@(10))
loginBtnTextFont UIFont 登录按钮文字字体
loginBtnBgImgArr NSArray<UIImage*> 登录按钮背景图片数组 (例:@[激活状态的图片,失效状态的图片,高亮状态的图片])

登陆按钮设置

属性名 值类型 说明
sloganTextFont UIFont 运营商品牌文字字体
sloganTextColor UIColor 运营商品牌文字颜色
sloganTextAlignment NSNumber 运营商品牌文字对齐方式 (例:@(NSTextAlignmentCenter))
sloganBgColor UIColor 运营商品牌背景颜色

loading 视图

属性名 值类型 说明
hiddenLoading NSNumber loading 是否隐藏 (例:@(NO))
loadingSize NSValue Loading 大小 (例:[NSValue valueWithCGSize:CGSizeMake(60, 60)])
loadingBackgroundColor UIColor Loading 背景色
loadingIndicatorStyle NSNumber style (例:@(UIActivityIndicatorViewStyleWhiteLarge))
loadingCornerRadius NSNumber Loading 圆角 (例:@(5))
loadingTintColor UIColor Loading Indicator渲染色

自定义loading视图

属性名 值类型 说明
loadingView block 设置loadingView后,大小 ,背景色,style,圆角,Indicator渲染色 将失效,注意特殊 login函数 的willHiddenLoading 回调 回收特殊loading

自定义视图

属性名 值类型 说明
customViewBlock block UIView添加自定义视图

布局

属性名 值类型 说明
layouts SecVerifyCustomLayouts 相关元素的布局集合

//SecVerifyCustomLayouts,都是相关于登录vc 的view

属性名 值类型 说明
logoLayout SecVerifyLayout logo 布局
phoneLayout SecVerifyLayout 手机号 布局
switchLayout SecVerifyLayout 其他登录方式 布局
loginLayout SecVerifyLayout 登录按钮 布局
checkPrivacyLayout SecVerifyCheckPrivacyLayout check(相对隐私协议)复选框
privacyLayout SecVerifyCheckPrivacyLayout 隐私条款(切记,不可设置隐藏)
sloganLayout SecVerifyLayout 运营商品牌(切记,不可设置隐藏)

//SecVerifyLayout,都是相关于登录vc 的view

属性名 值类型 说明
layoutTop NSNumber view 顶部距离 (例:@(10))
layoutBottom NSNumber view 底部距离 (例:@(10))
layoutLeft NSNumber view 左边距离 (例:@(10))
layoutRight NSNumber view 右边距离 (例:@(10))
layoutWidth NSNumber 宽度 (例:@(10))
layoutHeight NSNumber 高度 (例:@(10))
layoutCenterX NSNumber view x 中心距离 (例:@(10))
layoutCenterY NSNumber view y 中心距离 (例:@(10))

//SecVerifyCheckPrivacyLayout,都是相关于登录vc 的view

属性名 值类型 说明
layoutTop NSNumber 与隐私协议顶部 (例:@(10))
layoutCenterY NSNumber 与隐私协议中心 (例:@(10))
layoutRight NSNumber 与隐私协议右边距 (例:@(10))
layoutWidth NSNumber 宽 (例:@(10))
layoutHeight NSNumber 高 (例:@(10))

五、错误码

错误码返回格式:
外部code;
userInfo {“error_code” : 内部code, “error_message”: 错误描述 , “description” : 本地错误描述}

 

SecVerify 错误码

170000 未知
170001 网络错误
170002 获取mobToken失败
170003 运营商未支持
170004 运营商 sdk 为空
170005 没有手机卡
170102 Appkey不存在
170201 未知数据错误
170202 超时
170203 预登录失败
170204 取消一键登录
170205 一键登录失败
170206 一键登录入口为空
170301 切换登录方式
170500 try块捕捉到异常
170601 蜂窝网络未开启
170602 手动关闭登录vc

移动SDK错误码

103000 成功
103101 请求签名错误
103102 包签名/Bundle ID错误
103108 短信验证码错误
103109 短信验证码校验超时
103111 网关IP错误
103119 appid不存在
103125 短验下发时,手机号填写格式错误
103211 其他错误,(如有需要请联系qq群609994083内的移动认证开发)
103901 短验下发次数已达上限(5次/min,30次/day)
103902 scrip失效
103911 token请求过于频繁,10分钟内获取token且未使用的数量不超过30个
103273 预取号联通重定向(暂不支持联通取号)
105002 移动取号失败
105003 电信取号失败
105021 已达当天取号限额
105302 appid不在白名单
105313 非法请求
200020 用户取消登录
200021 数据解析异常
200022 无网络
200023 请求超时
200025 其他错误(socket、系统未授权数据蜂窝权限等,如需要协助,请加入qq群发问)
200027 未开启数据网络
200028 网络请求出错
200030 没有初始化参数
200038 异网取号网络请求失败
200048 用户未安装sim卡
200050 EOF异常
200060 切换账号(未使用SDK短验时返回)
200061 授权页面异常
200062 预取号不支持联通
200063 预取号不支持电信
200064 服务端返回数据异常
200072 CA根证书校验失败
200080 本机号码校验仅支持移动手机号
200082 服务器繁忙

联通错误码

100 成功(有数据返回)
103 成功(无数据返回)
101 鉴权失败
104 系统繁忙
111 认证成功,(手机号码和认证手机号码不一致,参与计费)
112 认证失败(未取到手机号码)
2001 取号失败/认证失败
2002 授权码为空
5001 序列号不存在

6001 参数信息错误
6002 应用信息错误
6003 sdk 信息错误
6004 SIM 信息错误
6005 接入信息解析错误
6006 获取接入信息流控类型错误
6008 流控值超限
6009 设备信息错误
6010 应用密钥信息不匹配
7001 数据更新失败
8001 无支付权限
8002 余额不足
10000 通用错误
10001 无网络
10002 接口参数不能为空
10003 应用密钥不能为空
10004 设备码不能为空
10005 超时,请重试
10006 测试次数超限
10007 Bundle 不能为空
10009 数据格式出错
10011 网络出错
10012 使用能力与注册能力不匹配
10013 用户取消登录
10014 切换其他登录方式
10015 10 分钟之内最多只能获取 30 个授权码

电信错误码

0 请求成功
-64 permission-denied(无权限访问)
-65 API-request-rates-Exceed-Limitations(调用接口超限)
-10001 取号失败
-10002 参数错误
-10003 解密失败
-10004 ip受限
-10005 异网取号回调参数异常
-10006 Mdn取号失败,且属于电信网络
-10007 重定向到异网取号
-10008 超过预设取号阈值
-10009 时间戳过期
-20005 sign-invalid(签名错误)
-20006 应用不存在
-20007 公钥数据不存在
-20100 内部解析错误
-20102 加密参数解析失败
-30001 时间戳非法
-30003 topClass失效,请查看5.3常见问题。
51002 参数为空
51114 无法获取手机号数据

 

相关文档