当前位置: 首页 > news >正文

微信小程序接入腾讯云短信验证码流程

以下是针对 AA公司微信小程序接入腾讯云短信验证码全流程操作指南,包含资质申请、签名/模板配置、代码对接的完整解决方案:


一、资质申请(必须通过审核才能发短信)

1️⃣ 进入资质管理页
  • 路径:腾讯云控制台 → 短信 → 实名资质管理 → 添加资质
2️⃣ 填写资质信息
字段填写要求示例 (AA公司)
资质名称自定义标识名称AA公司短信主资质
资质属性选「自用」(AA公司小程序主体与腾讯云账号实名主体一致)
❗ 若不一致需选「他用」并上传授权书
○ 自用
企业证件类型营业执照或统一社会信用代码证营业执照
资质证件上传盖公章的营业执照
→ 支持PNG/JPG ≤5MB
→ 水印文字:仅用于办理腾讯云短信增值服务
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
法定代表人上传法人身份证正反面(需在有效期内)张三的身份证正反面扫描件
3️⃣ 提交审核
  • 审核时效:2小时内(工作时间优先审核)
  • ⚠️ 注意事项
    • 公章必须清晰可见,且与营业执照名称一致
    • 避免非工作时间提交(周末/节假日延审)

二、创建短信签名(标识短信发送方)

1️⃣ 路径:短信 → 签名管理 → 创建签名
2️⃣ 关键配置项
字段填写规范AA公司示例
签名类型APP应用 → 选**「微信小程序」**
签名内容小程序全称(需与微信开放平台一致)AA生活服务
证明文件上传两者之一
① 《软件著作权证书》
② 微信小程序后台设置页截图
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
申请说明写明用途:用于AA公司微信小程序用户注册验证码发送

三、申请短信模板(验证码内容规范)

1️⃣ 路径:短信 → 正文模板管理 → 创建模板
2️⃣ 模板配置
模板名称:用户注册验证码
模板类型:验证码
短信内容:您的验证码为:{1},请于{2}分钟内填写。如非本人操作,请忽略本短信。 #腾讯云会过滤【】符号
申请说明:用户手机号注册验证场景
3️⃣ 参数说明
占位符类型示例值作用
{1}数字384592随机6位验证码
{2}数字5验证码有效期(分钟)

四、微信小程序代码对接(Node.js示例)

1️⃣ 安装 SDK
npm install tencentcloud-sdk-nodejs-sms --save
2️⃣ 封装短信服务 (/service/sms.js)
const tencentcloud = require("tencentcloud-sdk-nodejs-sms");
const SmsClient = tencentcloud.sms.v20210111.Client;const client = new SmsClient({credential: {secretId: process.env.TENCENT_SECRET_ID,   // 从环境变量读取secretKey: process.env.TENCENT_SECRET_KEY,},region: "ap-guangzhou", // 按资质所属地域填写
});// 发送验证码函数
exports.sendVerificationCode = async (phone, code) => {const req = {PhoneNumberSet: [phone],SmsSdkAppId: "1400006789",          // 短信应用ID(控制台获取)SignName: "AA生活服务",             // 第2步创建的签名TemplateId: "1717171",              // 第3步模板IDTemplateParamSet: [code.toString(), "5"], // 验证码+有效期};try {const res = await client.SendSms(req);return { success: res.SendStatusSet[0].Code === "Ok" };} catch (err) {console.error("短信发送失败:", err);throw new Error("SMS_SERVICE_ERROR");}
};
3️⃣ 注册接口调用(/controllers/user.js
const { sendVerificationCode } = require("../service/sms");
const crypto = require("crypto");// 生成6位数字验证码
const generateCode = () => Math.floor(100000 + Math.random() * 900000);// 用户注册入口
exports.register = async (req, res) => {const { phone } = req.body;// 1. 生成验证码并缓存(Redis推荐)const code = generateCode();await cache.set(`REG:${phone}`, code, "EX", 300); // 5分钟有效期// 2. 发送短信try {await sendVerificationCode(phone, code);res.json({ code: 0, message: "验证码已发送" });} catch (err) {res.status(500).json({ code: 1001, message: "短信服务异常" });}
};

五、全流程避坑指南

环节高频错误解决方案
资质审核公章模糊/证件过期使用高清扫描件+有效期验证
签名驳回小程序名称与签名不一致检查微信开放平台名称
模板审核未声明「验证码」用途在模板中显式包含「验证码」关键词
代码发送失败SecretId/Key 泄露用环境变量存储密钥 → 严禁硬编码
用户收不到触发频率限制(默认1条/分钟,30条/天)控制台调整频控策略 → 设置链接

💡 终极调试方案

  1. 在腾讯云控制台使用「短信调试」工具直接测试API
  2. 查看错误码:腾讯云短信错误码列表

完成以上步骤后,AA公司微信小程序即可实现 「手机号→获取验证码→注册」 的安全闭环。建议上线前用测试手机号全链路验证(测试模板需单独申请)。

http://www.xdnf.cn/news/1073701.html

相关文章:

  • python 使用 pyenv 管理 python 版本
  • 从代码学习深度学习 - 自然语言推断:使用注意力 PyTorch版
  • 基于Servlet + Jsp 的在线考试系统
  • 华为云Flexus+DeepSeek征文 | 华为云 ModelArts Studio 赋能高情商AI聊天助手:用技术构建有温度的智能对话体验
  • libevent(2)之使用教程(1)介绍
  • 基于云的平板挠度模拟:动画与建模-AI云计算数值分析和代码验证
  • 多模态大语言模型arxiv论文略读(143)
  • 广度优先搜索BFS(广搜)复习(c++)
  • 深入理解Mysql索引底层数据结构和算法
  • NeRF-Lidar实景重建:大疆Mavic 4 Pro低成本建模方案(2025实战指南)
  • H3C-路由器DHCPV6V4配置标准
  • C++基础(FreeRDP编译)
  • SRS流媒体服务器之本地测试rtc推流bug
  • Python 数据分析:numpy,抽提,整数数组索引。听故事学知识点怎么这么容易?
  • 第八讲——一元函数积分学的概念与性质
  • 【编译原理】期末
  • 设备树引入
  • 【Java--SQL】${}与#{}区别和危害
  • 【EDA软件】【联合Modelsim 同步FIFO仿真】
  • git 挑选:git cherry-pick
  • springboot+Vue逍遥大药房管理系统
  • python中学物理实验模拟:瞬间推力与摩擦力作用下的物体运动
  • 【数据标注师】目标跟踪标注
  • 概述-4-通用语法及分类
  • Word之空白页删除2
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(二)- 职位数据清洗与预处理
  • UniApp Vue3 模式下实现页面跳转的全面指南
  • SQL关键字三分钟入门:ROW_NUMBER() —— 窗口函数为每一行编号
  • FreeSWITCH配置文件解析(2) dialplan 拨号计划中xml 的action解析
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选