> 技术文档 > 微信小程序接入腾讯云短信验证码流程_微信小程序 手机短信验证

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

以下是针对 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步模板ID TemplateParamSet: [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公司微信小程序即可实现 「手机号→获取验证码→注册」 的安全闭环。建议上线前用测试手机号全链路验证(测试模板需单独申请)。

游戏攻略