发送短信验证码

iOS >= 0.7.13 支持,Android >= 0.7.5 支持。

通过 button 组件指定 open-typesendPhoneSms,可触发向指定手机号发送手机验证码。

注意:在使用发送短信验证码功能之前需先完成短信签名要求实名制报备,否则将无法发送短信。点此提交报备材料open in new window。并且,提交报备材料后可前往社区联系小助手open in new window提供「多端应用id」以及「短信签名」信息进行申请加急处理

短信签名报备背景

1、【签名必须备案】

  • 按照工信部23-24年要求,短信签名 如【腾讯科技】都要向运营商进行完整法律文书报备;未报备或者文书过期,短信会拦截。请根据您公司行业情况,完整提供资料运营商审核周期3-7个工作日后。

2、【独立经办人要求】

  • 每个签名独立填写一份,工信部要求,一个自然人只能对一个签名负责
  • 举例:比如贵司申请3个不同短信签名,需提交3次 材料收集表;提交3个不同的经办人资料。

2.1 必填材料:均需盖章 (传直接图片,勿传PDF等文件格式)

  • 签名归属主体营业执照
  • 经办人证件复印件(正、反面)、手持证件照片(不用盖章)
  • 软著及版号盖章(游戏类签名必须提供)
  • 金融许可证 (金融类签名必须提供)
  • 预售许可证 (房产类签名必须提供)

2.2 关联性证明资料:(传直接图片,勿传PDF等文件格式)

  • 签名与公司主体名称不一致时,需完成 签名品牌 归属该主体的证明链
  • 如 APP/小程序/网站截图(商标证书或者icp备案)

2.3 行业主体及授权资料:(传直接图片,勿传PDF等文件格式)

  • 如果贵司主体,并非腾讯控股的主体或业务,需填写法人及授权资料:法人身份证复印件、签名授权书、签名说明书、合同链证明(如,打印《身份管理功能服务条款》,开发者盖公司公章后(含骑缝章) 上传完整文档盖章照片)
  • 关于每份材料的提供要求可查看短信签名备案详细说明open in new window

前置流程

1、需前往「微信开发者平台open in new window - 多端应用 - 身份管理」开通身份管理功能,并且勾选「短信验证码」。

button 组件参数

属性类型默认值必填说明
phoneNumberstring手机号
open-typestringsendPhoneSms 为发送手机验证码
sms-typenumber0发送手机验证码的类型
bindsendphonesmsFunction获取用户手机号回调,open-type=sendPhoneSms时有效

sms-type

说明
0作为 wx.phoneSmsLoginopen in new window 的前置流程
1作为 wx.miniapp.bindPhoneopen in new window 的前置流程

bindsendphonesms 回调参数

Object res

属性类型说明
errCodenumber错误码
errMsgstring错误提示

示例代码

<input bindinput="onPhoneNumberChange" value="{{phoneNumber}}"/>
<button type="primary" open-type="sendPhoneSms" sms-type="{{0}}" bindsendphonesms="onHandleLogin" phoneNumber="{{phoneNumber}}">发送验证码</button>
<input bindinput="onVerifyCodeChange" value="{{verifyCode}}"/>
<button bindtap="login">登录</button>
Page({
  data: {
    phoneNumber: '',
    verifyCode: ''
  },
  onVerifyCodeChange(e) {
    this.setData({ verifyCode: e.detail.value });
  },
  onPhoneNumberChange(e) {
    this.setData({ phoneNumber: e.detail.value });
  },
  onHandleLogin(e) {
    const detail = e.detail;
    console.log('sendphonesms errCode', detail.errCode)
  },
  login() {
    wx.phoneSmsLogin({
      phoneNumber: this.data.phoneNumber,
      verifyCode: this.data.verifyCode,
      success (res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://example.com/onLogin',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    })
  }
})

错误码

errCode说明
10001007多端应用未绑定移动应用
10001017发送短信超过频率限制,验证码有效期为2分钟,开发者需限制调用频率
10001045当前短信签名尚未报备,请按照本文的指引提交报备材料,完成短信签名的报备
-700000前端错误,errMsg 将给出详细提示