使用Node.js调用短信接口发送验证码短信教程

NODE.JS对接验证码短信接口DEMO示例

圆点
&lt;p&gt;&lt;img title="使用Node.js调用短信接口发送验证码短信教程(图1)" alt="使用Node.js调用短信接口发送验证码短信教程(图1)" src="/uploads/allimg/20240524/1-240524200104E2.jpeg"/&gt;&lt;/p&gt; &lt;p&gt;短信验证码是应用里常见的安全验证方式,注册、登录、找回密码都能用。这篇文章讲怎么用 Node.js 调用短信接口,发送验证码短信。&lt;/p&gt; &lt;h2&gt;准备工作&lt;/h2&gt; &lt;p&gt;开始之前,先确认已经注册短信服务商(本例用的是 3yit.com),并在开发者文档里查看相关接口信息,包括 &lt;code&gt;sp_id&lt;/code&gt;、&lt;code&gt;password&lt;/code&gt;(或 &lt;code&gt;signature&lt;/code&gt;)、API 地址等。&lt;/p&gt; &lt;h2&gt;获取接口参数&lt;/h2&gt; &lt;p&gt;登录智慧云信官网,选择对应的产品(如【验证码】),在上方选项卡中点击【开发者】→【HTTP开发文档】,就能看到具体的 API 方法名称,以及各参数的 key 和对应值,通常包括 &lt;code&gt;sp_id&lt;/code&gt;、&lt;code&gt;mobile&lt;/code&gt;、&lt;code&gt;content&lt;/code&gt;、&lt;code&gt;password&lt;/code&gt; 等。各参数含义如下:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;code&gt;sp_id&lt;/code&gt;:产品编号,全局唯一,一般由 6 位数字组成。&lt;/li&gt;&lt;li&gt;&lt;code&gt;mobile&lt;/code&gt;:接收短信的手机号码。&lt;/li&gt;&lt;li&gt;&lt;code&gt;content&lt;/code&gt;:短信内容,包含签名和正文。例如“【智慧云信】您的验证码是456790,请妥善保管”,其中【智慧云信】是签名,需在签名报备中申请;后面的提示语是短信模板,需在模板报备中申请,审核通过后才能发送。&lt;/li&gt;&lt;li&gt;&lt;code&gt;password&lt;/code&gt;:用 SP_ID 密码经 MD5 加密后生成的接口密码(非登录密码),由 32 位随机字符串组成。&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;安装依赖&lt;/h2&gt; &lt;p&gt;Node.js 环境下用 axios 库发送 HTTP 请求,用 npm 安装:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;npm install axios&lt;/code&gt;&lt;/pre&gt; &lt;h2&gt;编写代码&lt;/h2&gt; &lt;p&gt;导入 axios,写一个发送短信的函数:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;const axios = require('axios'); async function sendSms(spId, mobile, content, password, ext = '') { try { // 构造请求参数 const formData = new URLSearchParams(); formData.append('sp_id', spId); formData.append('mobile', mobile); formData.append('content', content); // 根据需要选择使用password或signature formData.append('password', password); formData.append('ext', ext); // 发送POST请求 const response = await axios.post('https://api.3yit.com/api/send-sms-single', formData, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); // 处理响应数据 const { data } = response.data; if (data.code === 0) { console.log('短信发送成功,msg_id:', data.msg_id); return data.msg_id; } else { console.error('短信发送失败:', data.msg); return null; } } catch (error) { console.error('发送短信时发生错误:', error); return null; } } // 示例调用 const spId = '5xxxxx'; // 替换为您的sp_id const mobile = '176xxxxxxxx'; // 替换为接收短信的手机号 const content = '【签名】验证码123'; // 替换为短信内容 const password = 'xxxxxxxxxxx'; // 替换为您的md5处理后的密码 sendSms(spId, mobile, content, password) .then(msgId =&amp;gt; { if (msgId) { // 保存或处理msgId } }) .catch(error =&amp;gt; { // 处理错误 });&lt;/code&gt;&lt;/pre&gt; &lt;h2&gt;注意事项&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;code&gt;sp_id&lt;/code&gt; 和 &lt;code&gt;password&lt;/code&gt;(或 &lt;code&gt;signature&lt;/code&gt;)属于敏感信息,不要硬编码在代码里,建议放到配置或环境变量中。&lt;/li&gt;&lt;li&gt;示例里只是简单打印了错误信息,正式项目建议补更完整的错误处理逻辑。&lt;/li&gt;&lt;li&gt;如果选用 &lt;code&gt;signature&lt;/code&gt; 而非 &lt;code&gt;password&lt;/code&gt;,要按文档要求正确实现签名算法。&lt;/li&gt;&lt;li&gt;&lt;code&gt;ext&lt;/code&gt; 是可选的扩展参数,按需传值。&lt;/li&gt;&lt;li&gt;返回结果里除了 &lt;code&gt;code&lt;/code&gt; 和 &lt;code&gt;msg&lt;/code&gt;,还有 &lt;code&gt;msg_id&lt;/code&gt;(可用于获取状态报告),按需处理。&lt;/li&gt;&lt;li&gt;目标手机号在黑名单里,或其它原因导致发送失败时,服务商会实时返回错误信息,代码里要处理这些情况。&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;总结&lt;/h2&gt; &lt;p&gt;到这里,用 Node.js 调短信接口发验证码的基本流程就走通了:装好 axios,按文档拼好参数发 POST 请求,再处理返回结果。具体项目里按场景调整即可。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;其他语言教程:&lt;/strong&gt;&lt;a href="https://www.3yit.com/smsapi/262.html" title="PHP短信接口教程"&gt;PHP&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/282.html" title="Java短信接口教程"&gt;Java&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/283.html" title="ASP短信接口教程"&gt;ASP&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/284.html" title="ASP.NET(C#)短信接口教程"&gt;ASP.NET(C#)&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/285.html" title="JSP短信接口教程"&gt;JSP&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/298.html" title="Delphi短信接口教程"&gt;Delphi&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/300.html" title="Go短信接口教程"&gt;Go&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/301.html" title="Python短信接口教程"&gt;Python&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/302.html" title="Ruby短信接口教程"&gt;Ruby&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/303.html" title="Shell短信接口教程"&gt;Shell&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/304.html" title="VB短信接口教程"&gt;VB&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/305.html" title="C++短信接口教程"&gt;C++&lt;/a&gt; · &lt;a href="https://www.3yit.com/smsapi/306.html" title="C短信接口教程"&gt;C&lt;/a&gt;。更多信息见&lt;a href="https://www.3yit.com/smsapi/613.html" title="短信API接入指南"&gt;短信API接入指南&lt;/a&gt;。&lt;/p&gt; <p>代码里的 API 地址、账号和密码替换成你自己的就能跑通。如果还没有账号,去智慧云信官网注册一个,注册就能免费测试,验证码、通知、营销短信都支持。</p>
内容可信度说明

作者:智慧云信通信技术团队

技术审核:国际短信与号码检测产品组

最后更新:2026-08-13

本文主题:使用Node.js调用短信接口发送验证码短信教程

本文围绕「使用Node.js调用短信接口发送验证码短信教程」展开,结合智慧云信平台在短信接口API场景下的产品能力与客户接入经验整理。不同国家/地区的 Sender ID、模板审核、计费方式和合规要求可能变化,实际发送前建议以当前通道审核与项目沟通结果为准。