【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
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/278786.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP学习笔记(总结)

简介 jsp生命周期&#xff1a;首次访问jsp&#xff0c;1 转成的servlet源代码&#xff0c; 2 编译&#xff0c;3 加载&#xff0c;4 执行jsp的init方法, 5 执行jsp的service方法, 6 处理完毕执行jsp的distroy方法。 1 基本标签 1.1 基本元素 (1) HTML元素 (2) CSS元素 (3…

Git中stash的使用

Git中stash的使用 stash命令1. stash保存当前修改2. 重新使用缓存3. 查看stash3. 删除 使用场景 stash命令 1. stash保存当前修改 git stash 会把所有未提交的修改&#xff08;包括暂存的和非暂存的&#xff09;都保存起来. git stashgit stash save 注释2. 重新使用缓存 #…

SoC中跨时钟域的信号同步设计(单比特同步设计)

一、 亚稳态 在数字电路中&#xff0c;触发器是一种很常用的器件。对于任意一个触发器&#xff0c;都由其参数库文件规定了能正常使用的“建立时间”&#xff08;Setup time&#xff09;和“保持时间”&#xff08;Hold time &#xff09;两个参数。“建立时间”是指在时钟…

向华为学习:基于BLM模型的战略规划研讨会实操的详细说明,含研讨表单(一)

前面&#xff0c;华研荟用了三篇文章介绍华为战略规划的时候使用的其中一个工具&#xff1a;五看三定。一句话来说&#xff0c;五看三定是通过“五看”来知己知彼&#xff0c;然后设计业务&#xff0c;在选定的业务领域&#xff08;方向&#xff09;确定战略控制点&#xff0c;…

JedisCluster 通过 Pipeline 实现两套数据轮换更新

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、整体流程 1.1 大致流程 1.2 流程代码解释 二、从数据库里查数据 2.1 SQL语句 三、更新当前前缀 3.1 设置前缀常量 3.2 初…

设计模式——原型模式(创建型)

引言 原型模式是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象&#xff0c; 并希望生成与其完全相同的一个复制品&#xff0c; 你该如何实现呢&#xff1f; 首先&#xff0c; 你必须新建一个属于…

overleaf 加载pdf格式的矢量图时,visio 图片保存为pdf格式,如何确保pdf页面大小和图片一致

Overleaf支持多种矢量图形格式&#xff0c;其中一些常见的包括&#xff1a; PDF&#xff08;Portable Document Format&#xff09;&#xff1a; PDF是一种常见的矢量图形格式&#xff0c;Overleaf可以直接加载和显示PDF文件。许多绘图工具和LaTeX生成的图形都可以导出为PDF格式…

vue中哪些数组的方法可以做到响应式

Vue2 中为什么直接通过数组的索引修改元素是不会触发视图更新 vue2 为什么不直接监听数组 Vue2 对于数组提供了一些变异方法 重写数组方法源码分析 定义拦截器将拦截器挂载到数组上面收集依赖 扩展&#xff1a;理解Vue2如何解决数组和对象的响应式问题 对复杂对象的处理 复杂对…

【ThemeStudio】安装报错A Javascript error occurred in the main process

报错内容: 问题原因&#xff1a;系统环境缺少microsoft visual c插件 解决方法&#xff1a; 下载 微软VC 地址

elementui + vue2实现表格行的上下移动

场景&#xff1a; 如上&#xff0c;要实现表格行的上下移动 实现&#xff1a; <el-dialogappend-to-bodytitle"条件编辑":visible.sync"dialogVisible"width"60%"><el-table :data"data1" border style"width: 100%&q…

爬虫akamai案例:DHL国际物流

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、Akamai简介 Akamai是一家提供内容传递网络&#xff08;CDN&#xff09;和云服务的公司。CDN通过将内容分发到全球各地的服…

uniapp:使用fixed定位,iOS平台的安全区域问题解决

manifest.json > 添加节点 "safearea": { //iOS平台的安全区域"background": "#1C1E22","backgroundDark": "#1C1E22", // HX 3.1.19支持"bottom": {"offset": "auto"} },已解决&#xff…