本机号码校验

本机号码校验

接入前准备

请联系QQ:3007288195 开通权限。

接口列表

方法 功能说明
getPhoneVerifyToken 【本机号码校验】获取本机号码校验通行证
checkPhoneNumber 【本机号码校验】手机号码校验

本机号码校验

整体流程


本机号码校验需要先获取通行证,然后再进行本机号码校验。

获取本机号码校验通行证

/**
 * 获取本机号码校验所需要的 processID 和 token
 * @param pn 待校验手机号码
 * @param callback 回调
 * {
 *  code: 30000, //NSNumber, 非30000为失败
 *  msg: "success" // NSString, 返回信息
 *  phone: "1333333333" // NSString, 输入的手机号
 *  token: "xxx" // NSString, 授权凭证
 *  processID: "xxx" // NSString, 流水号
 *  operatorType = 4; // NSString, 操作类型
 * }
 */
+ (void)getPhoneVerifyToken:(NSString *_Nonnull)pn andCallback:(GyVerifyCallback _Nonnull)callback;

输入参数

参数名称 是否必填 类型 描述
pn String 待校验手机号码
callback GyVerifyCallback 回调

调用示例

[GeYanSdk getPhoneVerifyToken:pn andCallback:^(NSDictionary *result) {
        NSLog(@"%@", result);
}];    

返回示例

GyVerifyCallback返回结果示例:

{
  "code" : 30000,
  "phone" : "17357981821",
  "operatorType" : 3,
  "msg" : "success",
  "processID" : "7da6378c8637406ffec002c433c52b1a",
  "token" : "nm59b1598ae1e0465da3db485354166c55"
}
  • 属性详细说明:
属性 类型 属性说明
gyuid String 个验用户唯一标识
success boolean 是否获取成功
code int 状态码,30000表示获取成功
msg String 获取成功的时候,包含accessCode信息,验证失败的时候,为失败详细信息
metadata JSON 失败时,运营商的错误信息

本机号码校验接口

/**
 * 本机号码校验,本接口为客户端校验手机号使用
 * 若需要服务端校验手机号码,请使用 getPhoneVerifyToken:andCallback 获取 相关参数
 * @param pn 待校验手机号码
 * @param token getPhoneVerifyToken 返回的 token
 * @param processId getPhoneVerifyToken 返回的processId
 * @param opType getPhoneVerifyToken 返回的opType
 * @param callback 回调
 * {
 *  code: 30000, //NSNumber, 非30000为失败
 *  msg: "success" // NSString, 返回信息
 * }
 */
+ (void)checkPhoneNumber:(NSString *)pn withToken:(NSString *)token withProcessId:(NSString *)processId withOperatorType:(NSString *)opType andCallback:(GyVerifyCallback)callback;

我们还提供了服务端的本机号码校验接口,如果开发者有这方面的需求,请参考服务端的文档。

输入参数

参数名称 是否必填 类型 描述
pn string 待验证号码
token String 本机号码校验通行证
processId String 流水号
opType String 运营商类型
callback GyVerifyCallback 回调

调用示例

[GeYanSdk checkPhoneNumber:result[@"phone"] withToken:result[@"token"] withProcessId:result[@"processID"] withOperatorType:result[@"operatorType"] andCallback:^(NSDictionary *verifyDictionary) {
                NSLog(@"%@", verifyDictionary);
            }];

返回示例

GyVerifyCallback返回结果示例:

{
  "msg" : "成功",
  "code" : 30000
}
  • 属性详细说明:
属性 类型 属性说明
code int 状态码,30000表示验证成功
msg String 返回码说明

状态码

SDK返回码

状态码 含义
30000 操作成功
30001 当前网络环境不适合执行该操作
30004 其他错误
30005 预登录失败
30006 一键登录失败
30007 获取本机号码校验token失败
40047 一键登录取号失败
40053 手机号校验失败

错误码

errorCode Description
-20100 手机号未传
-20101 app_id未传
-20104 没有预取号就进行取号
-20200 当前网络不可用
-20201 当前手机没有电话卡
-20202 当前没有开启流量
-20203 未获取到运营商
-20204 获取运营商错误
-20205 预取号超时
-20206 没有预取号成功就进行取号
-20207 WIFI下请求切换网络失败
-20301 退出取号页面
-20302 按返回键退出取号页面
-20303 切换账号登陆方式
-20304 授权页面加载异常
-30200 SDK内部请求PreGateWay接口超时
-40101 移动运营商预取号失败
-40102 移动运营商取号失败
-40104 移动不支持的网络制式
-40201 联通运营商预取号失败
-40202 联通运营商取号失败
-40204 联通不支持的网络制式(不支持2G)
-40301 电信运营商预取号失败
-40302 电信运营商取号失败
-40305 电信不支持的网络制式(不支持2G, 3G)
-50100 服务接口返回异常
-50101 服务接口解密失败
-50102 服务接口返回错误

其余情况请参考状态码汇总说明

常见问题

建议开发者在开发期间开启debug模式,通过查看debug日志,可以更好的排查问题。

[GeYanSdk setDebug:YES];

一键登录和本机号码校验支持哪些运营商和网络环境

目前支持移动 2G、3G、4G,联通 3G、4G,电信 4G。

是否支持双卡手机

支持,双卡手机以开启数据流量的 SIM 卡进行认证。

WIFI环境下能否验证

在数据网络开通的前提下,WiFi 环境中会强制使用数据网络触发网关请求,请求仅为几K,可正常校验。

是否支持携号转网用户

SDK 不提供接口判断用户是否为携号转网用户,但可以判断用户流量卡当前的运营商。即携号转网用户可正常使用。

是否支持虚拟运营商

仅支持三大运营商(移动、联通、电信)的手机号进行一键登录。

是否支持流量卡

三大运营商(移动、联通、电信)的卡,能够正常使用数据网络,运营商通过网关能够正常取号,均会被作为正常的卡来判断。

文档中心搜索