# 发送短信验证码

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

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

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

注意:报备材料中不要填小程序的Appid,是填多端应用的Appid!!

# 短信签名报备背景

1、【签名必须备案】

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

2、【独立经办人要求】

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

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

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

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

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

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

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

# 前置流程

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

# button 组件参数

属性 类型 默认值 必填 说明
phoneNumber string 手机号
open-type string sendPhoneSms 为发送手机验证码
sms-type number 0 发送手机验证码的类型
bindsendphonesms Function 获取用户手机号回调,open-type=sendPhoneSms时有效

# sms-type

说明
0 作为 wx.phoneSmsLogin 的前置流程
1 作为 wx.miniapp.bindPhone 的前置流程

# bindsendphonesms 回调参数

# Object res

属性 类型 说明
errCode number 错误码
errMsg string 错误提示

# 示例代码

<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 将给出详细提示