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

实现效果

在这里插入图片描述

过程

流程比较复杂,加上需要实名认证,建议开发的时候先提前去认证号账号,然后申请模版也需要等认证。
在这里插入图片描述

源码

我看了新版的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<unknown>}
 */
 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
}
  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值