2023年7月31日发(作者:)
阿⾥云普通短信验证码的发送1、创建阿⾥云控制台短信模块 短信模板、签名等基础配置信息,在这⾥不⼀⼀讲叙2、对接接⼝时阿⾥云共分为两部分参数,⼀部分是公共参数,⼀部分是具体接⼝参数,其中公共参数为所有阿⾥云短信API接⼝共⽤的。这些参数中,⽐较复杂的是signature(签名)参数的⽣成。具体算法见阿⾥云短信功能⽂档,这⾥不做讲叙。3、我们在这⾥直接使⽤阿⾥云提供的SDK进⾏签名⽣成,⽣成的签名不会出现错误。然后通过SDK中⾃带的sendSms⽅法进⾏请求操作。4、⾸先添加依赖 $ npm install @alicloud/sms-sdk --save5、新建⽂件 app/service/sendSms/;;以下代码如需直接使⽤,请看代码中注释⾥有 标注 的地⽅,将这部分代码该为⾃⼰的,不可直接套⽤。'use strict';const BaseService = require('../core/base'); //
标注1:基础类⽂件引⼊⾃⼰创建,可⽤可不⽤const SMSClient = require('@alicloud/sms-sdk');const config = { AccessKeyId: '', //
访问密钥编号 AccessKeySecret: '', //
密钥};//
签名模板const sign = { REG_CODE: { SignName: '', //
签名 TemplateCode: '', //
模板 },};/** *
阿⾥云短信发送类 */class AliSmsService extends BaseService { //
标注1:BaseService⽂件⾃⼰创建⼀个 /** *
短信发送接⼝ * @param {*} phone
发送⼿机号 * @param {*} code
验证码 */ async sendCode(phone, code) { const { ctx } = this; const signCode = sign[code]; const codeRandom = Int(100000, 999999); //
标注2:随机数⽣成⽅法,⾃⼰写⼀个即可 const templateParam = ify({ code: ng() }); const accessKeyId = KeyId; const secretAccessKey = KeySecret; const smsClient = new SMSClient({ accessKeyId, secretAccessKey }); //
实例化SDK const params = { PhoneNumbers: phone, SignName: me, TemplateCode: teCode, TemplateParam: templateParam, }; try { const rs = await s(smsClient, params); if ( === 'OK') { return { code: codeRandom, sta: 1 }; } return { msg: '操作失败', sta: -1 }; } catch (err) { if ( === 'SS_LIMIT_CONTROL') { //
短信限制 return { msg: (/(S*)Permits/)[1], sta: 0 }; } return { msg: '操作失败', sta: -1 }; } } /** *
发送短信 * @param {*} smsClient SDK实例 * @param {*} params
参数信息 */ async sendSms(smsClient, params) { return new Promise((resolve, reject) => { S(params).then(result => { resolve(result); }, ex => { reject(ex); }); }); }}s = AliSmsService;
2023年7月31日发(作者:)
阿⾥云普通短信验证码的发送1、创建阿⾥云控制台短信模块 短信模板、签名等基础配置信息,在这⾥不⼀⼀讲叙2、对接接⼝时阿⾥云共分为两部分参数,⼀部分是公共参数,⼀部分是具体接⼝参数,其中公共参数为所有阿⾥云短信API接⼝共⽤的。这些参数中,⽐较复杂的是signature(签名)参数的⽣成。具体算法见阿⾥云短信功能⽂档,这⾥不做讲叙。3、我们在这⾥直接使⽤阿⾥云提供的SDK进⾏签名⽣成,⽣成的签名不会出现错误。然后通过SDK中⾃带的sendSms⽅法进⾏请求操作。4、⾸先添加依赖 $ npm install @alicloud/sms-sdk --save5、新建⽂件 app/service/sendSms/;;以下代码如需直接使⽤,请看代码中注释⾥有 标注 的地⽅,将这部分代码该为⾃⼰的,不可直接套⽤。'use strict';const BaseService = require('../core/base'); //
标注1:基础类⽂件引⼊⾃⼰创建,可⽤可不⽤const SMSClient = require('@alicloud/sms-sdk');const config = { AccessKeyId: '', //
访问密钥编号 AccessKeySecret: '', //
密钥};//
签名模板const sign = { REG_CODE: { SignName: '', //
签名 TemplateCode: '', //
模板 },};/** *
阿⾥云短信发送类 */class AliSmsService extends BaseService { //
标注1:BaseService⽂件⾃⼰创建⼀个 /** *
短信发送接⼝ * @param {*} phone
发送⼿机号 * @param {*} code
验证码 */ async sendCode(phone, code) { const { ctx } = this; const signCode = sign[code]; const codeRandom = Int(100000, 999999); //
标注2:随机数⽣成⽅法,⾃⼰写⼀个即可 const templateParam = ify({ code: ng() }); const accessKeyId = KeyId; const secretAccessKey = KeySecret; const smsClient = new SMSClient({ accessKeyId, secretAccessKey }); //
实例化SDK const params = { PhoneNumbers: phone, SignName: me, TemplateCode: teCode, TemplateParam: templateParam, }; try { const rs = await s(smsClient, params); if ( === 'OK') { return { code: codeRandom, sta: 1 }; } return { msg: '操作失败', sta: -1 }; } catch (err) { if ( === 'SS_LIMIT_CONTROL') { //
短信限制 return { msg: (/(S*)Permits/)[1], sta: 0 }; } return { msg: '操作失败', sta: -1 }; } } /** *
发送短信 * @param {*} smsClient SDK实例 * @param {*} params
参数信息 */ async sendSms(smsClient, params) { return new Promise((resolve, reject) => { S(params).then(result => { resolve(result); }, ex => { reject(ex); }); }); }}s = AliSmsService;
发布评论