云验证

云验证

前言

进行云验证接入前请先完成SDK的接入与初始化

功能说明

云验证服务基于个验认证技术帮助APP实现本机号码校验,验证用户号码真实性,省去短信验证码环节,提升用户体验。适用于注册、登录、修改密码等场景。也可用于风控场景。云验证提供3种验证模式。

  • 短信验证模式
    短信模式指所有验证都使用短信验证码进行校验。

  • 【推荐】云短信验证模式
    云短信模式在云验证失败时会自动发送短信验证码。适合登录、注册、修改密码等场景。

云短信模式流程图

png

前期准备

1、提供短信模板数据

短信模板说明

使用云短信验证模式或者短信验证模式时,因为需要发送短信,需要提前配置好短信模板,去运营商那边的报备,运营商审核时间一般为1-2个工作日。

例子:

sms template id id 说明 短信内容
00001 登录场景 【个验】登录验证码:4799,验证码将于5分钟后失效,若非您本人操作请忽略。
00002 注册场景 【个验】注册验证码:8953,验证码将于4分钟后失效,快快去验证吧。

开发者中心配置短信模板

短信模板可在开发者中心进行配置,可配置验证码失效时间。具体操作可参考下图

png

接口列表

方法 功能说明
verifyForType 个验云验证接口
smsVerifyCode 短信验证码校验接口

接口说明

1、云验证接口

接口说明

/**
 *  验证方式
 */

typedef NS_ENUM(NSUInteger, GyVerifyType) {
    /**
     *  Cloud + Sms 验证
     */
    GyVerifyTypeCloudSms,
    /**
     *  Cloud 验证
     */
    GyVerifyTypeCloud,
    /**
     *  Sms 验证
     */
    GyVerifyTypeSms,
};

/**
 *  验证接口回调
 *
 *  @param verifyDictionary      云验证返回信息
 */

typedef void (^GyVerifyCallback)(NSDictionary *verifyDictionary);

/**
 *  云验证接口
 *
 *  @param type          验证方式
 *  @param pnMD5         手机号md5值,32位小写
 *  @param smsTemplateId 自定义短信模板 id,申请 AppId 时配置
 *  @param callback      验证接口回调
 */
+ (void)verifyForType:(GyVerifyType)type withPnMD5:(NSString *)pnMD5 withSmsTemplateId:(NSString *)smsTemplateId withCallback:(GyVerifyCallback)callback;

GyVerifyType验证方式参数说明

验证类型 功能说明
GyVerifyTypeCloudSms 【推荐使用】云验证 + 短信验证, 云验证不通过时,使用短信验证模式
GyVerifyTypeCloud 云验证,校验号码是否为本机使用,验证失败后业务方自行处理
GyVerifyTypeSms 短信验证,每次请求均使用短信验证

输入参数

接口参数 参数说明
type 验证方式,详见GyVerifyType说明
pnMD5 手机号 md5 值,32位小写.
smsTemplateId 自定义短信模板 id,申请 APPID 时配置
callback 验证接口回调

回调说明

回调参数 参数说明
verifyDictionary 云验证返回信息

回调参数说明

回调参数 参数说明
success 调用成功与否
msg 返回调用描述信息
code 返回具体的业务结果编码
gyuid 设备注册后返回的唯一标识
reqId 调用验证接口和短信验证接口时返回的请求唯一id
type 0:云验证成功,1:短信发送成功

调用示例:

[GeYanSdk verifyForType: GyVerifyTypeCloudSms
              withPnMD5:@"手机号md5值,32位小写"
      withSmsTemplateId:@"自定义短信模板 id,申请 APPID 时配置"
           withCallback:^(NSDictionary *verifyDictionary) {
                  NSString *msg = @"";
                  if ([verifyDictionary[@"success"] boolValue]) {
                     if ([verifyDictionary[@"type"] intValue] == 0) {
                         msg = @"云验证通过";
                     }
                     if ([verifyDictionary[@"type"] intValue] == 1) {
                         msg = @"短信发送成功";
                     }
                     //verifyDictionary[@"gyuid"]
                     //verifyDictionary[@"reqId"]
                     //verifyDictionary[@"code"]
                  } else {
                     //TODO 失败的逻辑  包含了云验证和短信的失败处理
                     msg = verifyDictionary[@"msg"];

                     //verifyDictionary[@"gyuid"]
                     //verifyDictionary[@"reqId"]
                     //verifyDictionary[@"code"]
                  }

                   NSLog(@"%@", msg);
               }];

返回示例

{
    code = 20001;
    gyuid = b077fad13d23474ab45e6ba13735101131;
    msg = "\U4e91\U9a8c\U8bc1\U6210\U529f";
    reqId = "GY-20180917-0-YMXPuD7Eoi73DyVbbVyL59";
    success = 1;
    type = 0;
}

2、短信验证码校验接口

接口说明

/**
 *  短信校验回调
 *
 *  @param smsVerifyDictionary   短信验证返回信息
 */
typedef void (^GySmsVerifyCallback)(NSDictionary *smsVerifyDictionary);

/**
 *  短信验证码校验
 *
 *  @param code     短信验证码
 *  @param pnMD5    手机号md5值,32位小写
 *  @param callback 通用接口回调
 */
+ (void)smsVerifyCode:(NSString *)code withPnMD5:(NSString *)pnMD5 withCallback:(GySmsVerifyCallback)callback;

输入参数

接口参数 参数说明
code 短信验证码
pnMD5 手机号 md5 值,32位小写.
callback 验证接口回调

回调说明

回调参数 参数说明
smsVerifyDictionary 验证码验证返回信息

回调参数说明

回调参数 参数说明
success 调用成功与否
msg 返回调用描述信息
code 返回具体的业务结果编码
gyuid 设备注册后返回的唯一标识
reqId 调用验证接口和短信验证接口时返回的请求唯一id,错误不返回

调用示例:

 [GeYanSdk smsVerifyCode:@"短信验证码"
               withPnMD5:@"手机号md5值,32位小写"
            withCallback:^(NSDictionary *smsVerifyDictionary) {
                   NSString *msg = @"";
                   if ([smsVerifyDictionary[@"success"] boolValue]) {
                     msg = @"短信检验成功";
                     //verifyDictionary[@"gyuid"]
                     //verifyDictionary[@"reqId"]
                     //verifyDictionary[@"code"]

                   } else {
                     msg = smsVerifyDictionary[@"msg"];
                     //verifyDictionary[@"gyuid"]
                     //verifyDictionary[@"code"]
                   }

                   NSLog(@"%@", msg);
               }];

返回示例

{
    code = 20003;
    gyuid = b077fad13d23474ab45e6ba13735101131;
    msg = "\U9a8c\U8bc1\U7801\U6821\U9a8c\U6210\U529f";
    reqId = "GY-20180917-0-acvCLZ1aeDAoJ2QIVLAVN3";
    success = 1;
}

状态码

请参考状态码汇总说明

文档中心搜索