smsVerify

来自于:开发者

register sms voice verify

概述

smsVerify 模块封装了 Mob2.0 版本的短信验证与语音验证功能。所有短信费用由Mob为您承担,支持212个国家、1000多个运营商。详细使用方法 请看此帖

使用此模块之前必须先配置 config.xml 文件,配置方法如下:

  • 名称:smsVerify
  • 参数:android_app_key、android_app_secret、ios_app_key、ios_app_secret
  • 备注:同一个 App 需要同时支持 iOS 和 Android 平台,必须在Mob短信验证码平台分别创建 iOS 和 Android 的两个应用,并同时配置在 config.xml 文件中;若要移除本模块,需要先删除 config.xml 中的配置项,提交代码到云端后方可在控制台的模块栏目移除。
  • 配置示例:

    1. <feature name="smsVerify">
    2. <param name="android_app_key" value="e2ffa3hse299"/>
    3. <param name="android_app_secret" value="7a0ejgd7df95607464eaaec5c0f9b2b9"/>
    4. <param name="ios_app_key" value="e2fhsc7fbw00"/>
    5. <param name="ios_app_secret" value="db5abtd9931e3211932dde17c94c30ae"/>
    6. </feature>

其他问题和说明

  1. 短信验证码自定义签名注意事项
  2. iOS版模块SDK含有IDFA,所以关于使用本模块后iOS应用上架审核问题请看 此链接第二点 的说明;
  3. 如何在mob创建应用
  4. 模块大部分错误码由SDK自动返回,但不知道 Mob 出于什么原因,部分错误对应的错误码和描述信息在 iOS 和 Android 上会有所不同。比如发短信验证码时,如果手机号为空,iOS 上返回的是服务器错误码456,而 Android 上返回的是本地错误码603,虽然俩者都代表手机号错误,但在项目开发时如果某些地方用到了错误码还请自行注意;
  5. 模块使用的是 Mob2.0 以上的SDK开发,1.0 时代申请的 AppKey 是无法在本模块上使用的,若要使用请到 Mob 官网重新申请;
  6. 验证码有效时间为 5分钟
  7. 费用:测试期间同一 AppKey 短信条数限制为 20条/天,APP开发完成后务必提交开发包到 Mob 后台审核,审核通过后完全免费。(国内外短信、语音短信、自定义签名短信全部免费,不收取任何短信费用);
  8. 运营商限制:同一个手机号12小时内只能收到5条文本验证码,语音验证码24小时内只能收到10个。开发中或已审核通过的应用皆受此限制;
  9. Android 智能验证是默认开启的,手机号如果通过智能验证,则不会下发短信验证码,可以在 Mob 后台关闭;

register

注册应用

register(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false,注册是否成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. code: 1, //数字类型;
  3. //错误码:
  4. //1(注册失败)
  5. msg: "注册失败,请配置 config.xml 文件" //字符串类型;错误信息
  6. }

示例代码

  1. var smsVerify = api.require('smsVerify');
  2. smsVerify.register(function(ret, err){
  3. if(ret.status){
  4. //api.alert({msg: '注册成功'});
  5. }else{
  6. api.alert({msg: err.code+' 注册失败'});
  7. }
  8. });

补充说明

进行后续各种方法操作前务必要先调用此方法!(在当前页面初始化时调用一次就够了)

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sms

发送短信验证码

sms({params}, callback(ret, err))

params

phone:

  • 类型:字符串
  • 描述:需要验证的手机号码
  • 默认值:无

country:

  • 类型:字符串
  • 描述:(可选项)国际区号。前面不要有 + 号
  • 默认值:86

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false,操作是否成功
  3. smart: false //布尔型;true||false,是否通过智能验证 (iOS系统不支持,所以iOS上永远返回false)
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. code: 456, //错误码;
  3. msg: "手机号码为空" //字符串类型;错误信息
  4. }

示例代码

  1. var smsVerify = api.require('smsVerify');
  2. smsVerify.sms({
  3. phone:"18111801118",
  4. country:"86"
  5. },function(ret, err){
  6. if(ret.status){
  7. if( ret.smart == true ){ // 安卓版特有功能 智能验证
  8. api.alert({msg: '智能验证成功:开发者可以在这里直接执行手机号验证成功之后的相关操作'});
  9. }else{
  10. api.alert({msg: '短信发送成功'});
  11. }
  12. }else{
  13. api.alert({msg: err.code+' '+err.msg});
  14. }
  15. });

补充说明

  • Mob短信后台开启智能验证后,若该设备待验证手机号码、手机设备唯一ID和SIM卡序列号,与上一次该设备短信验证通过的手机号码、手机设备唯一ID和SIM卡序列号完全一致。则无需进行短信验证,直接智能验证通过。(仅针对Android设备)
  • 错误码参考

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

voice

发送语音验证码

voice({params}, callback(ret, err))

params

phone:

  • 类型:字符串
  • 描述:需要验证的手机号码
  • 默认值:无

country:

  • 类型:字符串
  • 描述:(可选项)国际区号。前面不要有 + 号
  • 默认值:86

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false,操作是否成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. code: 456, //错误码;
  3. msg: "手机号码为空" //字符串类型;错误信息
  4. }

示例代码

  1. var smsVerify = api.require('smsVerify');
  2. smsVerify.voice({
  3. phone:"18111801118",
  4. country:"86"
  5. },function(ret, err){
  6. if(ret.status){
  7. api.alert({msg: '语音发送成功'});
  8. }else{
  9. api.alert({msg: err.code+' '+err.msg});
  10. }
  11. });

补充说明

错误码参考

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

verify

校验验证码

verify({params}, callback(ret, err))

params

phone:

  • 类型:字符串
  • 描述:需要验证的手机号码
  • 默认值:无

code:

  • 类型:字符串
  • 描述:收到的验证码
  • 默认值:无

country:

  • 类型:字符串
  • 描述:(可选项)国际区号。前面不要有 + 号
  • 默认值:86

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false,操作是否成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. code: 456, //错误码;
  3. msg: "手机号码为空" //字符串类型;错误信息
  4. }

示例代码

  1. var smsVerify = api.require('smsVerify');
  2. smsVerify.verify({
  3. phone:"18111801118",
  4. country:"86",
  5. code:"1234"
  6. },function(ret, err){
  7. if(ret.status){
  8. api.alert({msg: '验证成功'});
  9. }else{
  10. api.alert({msg: err.code+' '+err.msg});
  11. }
  12. });

补充说明

错误码参考

新版 iOS SMSSDK 要求:必须先调用 smsvoice 接口发送验证码后才能使用本接口,否则使用本接口时即使传入了手机号、验证码参数到接口里,也只会返回手机号为空的错误信息。

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本