免费开源的iOS开发学习平台

免费短信验证码:mob短信验证码SDK

使用短信验证码来实现用户注册基本是每个App必备的功能之一,目前市面上绝大多数的短信SP提供商都是需要付费才能提供这种服务,价格普遍在0.07元/条左右。这里跟大家介绍一个免费的短信验证码的SDK,短信发送和接收效率不错,关键是免费!

mob短信验证码SDK简介

本节给大家推荐使用是mob提供的短信验证码SDK(http://sms.mob.com)。该SDK具有如下特点:

  • 免费(最主要的);
  • 速度不错,3-5秒内即可收到短信验证码;
  • 同时支持国内以及国外号码;
  • 易于与mob提供的社交SDK–shareSDK集成。

SDK使用介绍-注册并获取appKey

首先登录mob的官方网站www.mob.com,注册用户并登录后,选择进入后台。

选择创建应用。

记住新应用的appKey和appSecret,在后续集成开发中需要使用。

SDK使用介绍-下载SDK并导入工程

手工导入SDK。在官网下载最新版本的SDK,并将SMS_SDK这个文件夹拖入工程。步骤如下:

在工程中,添加依赖库文件。

其中,必须导入的库文件包括:libicucore.dylib、libz.dylib、MessageUI.framework、javascriptcore.framework、libstdc++.dylib、SystemConfiguration.framework、CoreTelephony.framework、AdSupport.framework。可选的库文件包括:AddressBook.framework (通讯录功能需要)、AddressBookUI.framework(通讯录功能需要)。

SDK使用介绍-添加初始化代码

在AppDelegate.m中添加如下代码:(appkey和appsecret请替换!)

#import <SMS_SDK/SMSSDK.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //注册
    [SMSSDK registerApp:@"b19074915b5c" withSecret:@"e622ea4b47057c41bd31638c481a9e3e"];
    return YES;
}

SDK使用介绍-关键方法的使用介绍

短信验证码获取申请API:通过该API能够向服务器发送请求,向指定的手机发送验证码;getVerificationCodeByMethod:方法中,设置了一个回调block,如果成功,则没有error信息,如果发送失败,失败原因会存放在error中。

/**
 *  @from                    v1.1.1
 *  @brief                   获取验证码(Get verification code)
 *
 *  @param method            获取验证码的方法(The method of getting verificationCode)
 *  @param phoneNumber       电话号码(The phone number)
 *  @param zone              区域号,不要加"+"号(Area code)
 *  @param customIdentifier  自定义短信模板标识 该标识需从官网http://www.mob.com上申请,审核通过后获得。
 *  @param result            请求结果回调(Results of the request)
 */
 
[SMSSDK getVerificationCodeByMethod:SMSGetCodeMethodSMS phoneNumber:@"159****1689"
                                                               zone:@"86"
                                                   customIdentifier:nil
                                                             result:^(NSError *error){
       if (!error) {
            NSLog(@"获取验证码成功");
        } else {
            NSLog(@"错误信息:%@",error);
        }];

短信验证码验证API:用户接收到短信验证码后,在App中把验证码发送给服务器验证用户输入是否正确。commitVerificationCode:方法中,设置了一个回调block,如果验证通过,则没有error信息,如果验证失败,失败原因会存放在error中。

  [SMSSDK commitVerificationCode:self.verifyCodeField.text phoneNumber:_phone zone:_areaCode result:^(SMSSDKUserInfo *userInfo, NSError *error) {

        {
            if (!error)
            {
                NSLog(@"验证成功");
            }
            else
            {
                NSLog(@"错误信息:%@",error);
            }
        }
}];

常见error代码说明

在发送验证码以及校验验证码的过程中,如果发生错误,mob服务器会以返回错误代码提示错误原因。

/**
 *  @brief  错误代码,如果为调用API出错则应该参考API错误码对照表。错误码对照表如下:
 错误码    错误描述                             备注
 400    无效请求                             客户端请求不能被识别。
 408    无效参数                          无效的请求参数
 456    手机号码为空                       提交的手机号或者区号为空
 457    手机号码格式错误                     提交的手机号格式不正确(包括手机的区号)
 458    手机号码在黑名单中                    手机号码在发送很名单中
 459    无appKey的控制数据                     获取appKey控制发送短信的数据失败
 460    无权限发送短信                      没有打开客户端发送短信的开关
 461    不支持该地区发送短信                没有开通当前地区发送短信的功能
 462    每分钟发送次数超限                    每分钟发送短息的次数超出限制
 463    手机号码每天发送次数超限                 手机号码每天发送短信的次数超出限制
 464    每台手机每天发送次数超限                 每台手机每天发送短信的次数超限
 465    号码在App中每天发送短信的次数超限       手机号码在App中每天发送短信的数量超限
 466    校验的验证码为空                     提交的校验验证码为空
 467    校验验证码请求频繁                  5分钟内校验错误超过3次,验证码失效
 468    需要校验的验证码错误                用户提交的验证码错误
 470    账号余额不足                       账号短信余额不足
 472    客户端请求发送短信验证过于频繁        客户端请求发送短信验证过于频繁
 475    appKey的应用信息不存在              appKey的应用信息不存在
 500    服务器内部错误                     服务器程序报错
 */