发送短信验证码
iOS >= 0.7.13 支持,Android >= 0.7.5 支持。
通过 button
组件指定 open-type
为 sendPhoneSms
,可触发向指定手机号发送手机验证码。
注意:在使用发送短信验证码功能之前需先完成短信签名要求实名制报备,否则将无法发送短信。点此提交报备材料open in new window。并且,提交报备材料后可前往社区联系小助手open in new window提供「多端应用id」以及「短信签名」信息进行申请加急处理
短信签名报备注意事项
- 业务短信下发时的签名,必须与 App 的名称完全一致。例如,App 名称为「麦多鱼」,那么报备的短信签名也必须是「麦多鱼」,不能是例如「麦多鱼App」
- 多端应用的名称需要与 App 名称一致,否则在调用
sendPhoneSms
会出现”应用名称与短信签名不一致“的错误 - 即下方红色框框中的名称要与短信签名保持完全一致
属性 | 类型 | 默认值 | 必填 | 说明 |
---|
phoneNumber | string | | 是 | 手机号 |
open-type | string | | 是 | sendPhoneSms 为发送手机验证码 |
sms-type | number | 0 | 否 | 发送手机验证码的类型 |
bindsendphonesms | Function | | 否 | 获取用户手机号回调,open-type=sendPhoneSms时有效 |
sms-type
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分钟,开发者需限制调用频率 |
-700000 | 前端错误,errMsg 将给出详细提示 |