# 发送短信验证码
iOS >= 0.7.13 支持,Android >= 0.7.5 支持。
通过 button
组件指定 open-type
为 sendPhoneSms
,可触发向指定手机号发送手机验证码。
注意:在使用发送短信验证码功能之前需先完成短信签名要求实名制报备,否则将无法发送短信。点此提交报备材料。并且,提交报备材料后可前往社区联系小助手提供「多端应用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 将给出详细提示 |