【node】使用 sdk 完成短信发送

实现效果

【node】使用 sdk 完成短信发送_第1张图片

过程

流程比较复杂,加上需要实名认证,建议开发的时候先提前去认证号账号,然后申请模版也需要等认证。
【node】使用 sdk 完成短信发送_第2张图片

源码

我看了新版的sdk用的代码有点长,感觉没必要,这边使用最简单的旧版的sdk。
https://github.com/thinkasany/nestjs-course-code/tree/master/sdk/sendSms
配置.env

ACCESS_KEY_ID = ''
ACCESS_KEY_SECRET = ''
SMS_TEMPLATE_CODE = ''
SMS_SIGN_NAME = ''
const Core = require("@alicloud/pop-core");
const dotenv = require('dotenv');
dotenv.config();

const ENV = process.env;
const client = new Core({
        accessKeyId: ENV.ACCESS_KEY_ID,
        accessKeySecret: ENV.ACCESS_KEY_SECRET,
        endpoint: 'https://dysmsapi.aliyuncs.com',
        apiVersion: '2017-05-25'
    }), SIGN_NAME = ENV.SMS_SIGN_NAME,
    TEMPLATE_CODE = ENV.SMS_TEMPLATE_CODE


/**
 * 发送验证码
 * @param phoneNumber 手机号
 * @param code 验证码
 * @return {Promise}
 */
 const smsSend = (phoneNumber, code) => new Promise((resolve, reject) => {
    client.request('SendSms', {
        "SignName": SIGN_NAME,
        "TemplateCode": TEMPLATE_CODE,
        "PhoneNumbers": phoneNumber,
        "TemplateParam": `{\"code\":\"${code}\"}`
    }, {
        method: 'POST',
        formatParams: false,
    }).then((result) => {
        resolve(JSON.stringify(result))
    }).catch(err => {
        reject(err)
    })
})

smsSend(18767788888, 123456)

module.exports = {
    smsSend
}

你可能感兴趣的:(node,node.js)