当前位置:首页 > 行业动态 > 正文

html调用短信接口

fetch(‘https://api.example.com/sms’,{method:’POST’,body:JSON.stringify({phone:’13800000000′,text:’验证码1234′})}).then(res=>console.log(res))

HTML调用短信接口的实现流程

前端页面设计

使用HTML创建表单,收集用户手机号和验证码(可选)。

html调用短信接口  第1张

<form id="smsForm">
  <input type="text" id="phone" placeholder="请输入手机号" required />
  <button type="button" onclick="sendSMS()">发送短信</button>
</form>
<script>
  function sendSMS() {
    const phone = document.getElementById('phone').value;
    // 通过AJAX将数据发送到后端
    fetch('/api/send-sms', {
      method: 'POST',
      headers: {'Content-Type': 'application/json'},
      body: JSON.stringify({phone})
    }).then(response => response.json())
      .then(data => alert(data.message))
      .catch(error => console.error('Error:', error));
  }
</script>

后端接口逻辑

后端接收请求,调用短信服务商API,以下以Node.js为例(其他语言逻辑类似):

const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
app.post('/api/send-sms', async (req, res) => {
  const { phone } = req.body;
  if (!/^1[3-9]d{9}$/.test(phone)) {
    return res.json({ message: '手机号格式错误' });
  }
  try {
    // 调用短信服务商API(以阿里云为例)
    const smsResponse = await axios.post('https://dysmsapi.aliyuncs.com/', {
      Action: 'SendSms',
      Version: '2017-05-25',
      PhoneNumbers: phone,
      SignName: '你的签名',
      TemplateCode: 'SMS_12345678',
      TemplateParam: JSON.stringify({ code: '1234' }) // 验证码参数
    }, {
      headers: {'Content-Type': 'application/x-www-form-urlencoded'},
      auth: { username: 'your-access-key-id', password: 'your-access-key-secret' }
    });
    res.json({ message: '短信发送成功' });
  } catch (error) {
    res.json({ message: '短信发送失败' });
  }
});
app.listen(3000);

短信接口核心参数说明

参数名称 类型 描述 必填
Action String API操作名(固定值)
Version String API版本号(固定值)
AccessKeyId String 访问密钥ID
AccessKeySecret String 访问密钥Secret
PhoneNumbers String 接收短信的手机号
SignName String 短信签名(需预先审核)
TemplateCode String 短信模板ID(需预先申请)
TemplateParam String 模板参数(JSON格式)

主流短信服务商对比

服务商 免费额度 国内号码支持 接口响应速度
阿里云 新用户10条/月 平均200ms
酷盾安全 新用户100条/月 平均150ms
Twilio 试用$10信用额度 否(需香港/海外号) 平均300ms
网易云 新用户50条/月 平均250ms

相关问题与解答

问题1:如何选择短信服务商?
解答:需综合考虑以下几点:

  1. 业务范围:是否支持国内号码(如阿里云、酷盾安全),或需要国际短信(如Twilio);
  2. 成本:对比单价和免费额度,例如酷盾安全单价约0.045元/条;
  3. 稳定性:查看接口平均响应时间和SLA保障;
  4. 合规性:是否提供签名审核、内容过滤等增值服务。

问题2:如何处理短信发送失败的情况?
解答:建议采取以下措施:

  1. 重试机制:失败后间隔5秒重试2次;
  2. 日志记录:保存失败记录至数据库,便于后续排查;
  3. 用户提示:前端显示“发送失败,请稍后重试”;
  4. 告警监控:当连续失败次数超过阈值时触发运维告
0