微信小程序接入騰訊云短信驗證碼流程

以下是針對 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.pswp.cn/diannao/89041.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89041.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89041.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云OSS文件上傳完整實現方案

一、前言 阿里云對象存儲服務(OSS)是一種海量、安全、低成本、高可靠的云存儲服務。本文將詳細介紹如何在Spring Boot項目中集成阿里云OSS實現文件上傳功能。 二、準備工作 1. 獲取OSS配置信息 在開始前,您需要準備以下OSS配置信息: endpoint: OSS服…

【軟考--軟件設計師】10.2 關系型數據庫

10 模式分解 分解 模式分解:將一個關系模式分解為多個子模式 模式分解就是模式規范化的工具,模式分解使用無損連接和保持函數依賴來衡量模式分解后是否導致原有模式中部分信息丟失。 無損連接 保持函數依賴 11、事務管理 事務的ACID性質: (1)原子性(Atomicit…

python訓練day44 預訓練模型

預訓練模型發展史 預訓練模型的訓練策略 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 設置中文字體支持 plt.rcParams["…

[論文閱讀]MISSRce

論文title: MISSRec: Pre-training and Transferring Multi-modal Interest-aware Sequence Representation for Recommendation

Redis學習筆記——黑馬點評 附近商鋪到UV統計 完結

前言: 今天完結了Redis的所有實戰篇。 學習收獲: GEO數據結構: GEO就是Geolocation的簡寫形式,代表地理坐標。Redis在3.2版本中加入對Geo的支持,存儲、管理和操作地理空間數據的特殊數據結構,它能高效處…

【客戶端排查】mac電腦怎么查看客戶端的實時運行日志

先退出客戶端;打開訪達里的應用程序; 打開【顯示包內容】; 找到MacOS 雙擊里面的終端程序; 雙擊后,客戶端會自動啟動,且可以在終端中查看客戶端的實時日志啦~

HarmonyOS NEXT倉頡開發語言實戰案例:健身App

各位好,今日分享一個健身app的首頁: 這個頁面看起比之前的案例要稍微復雜一些,主要在于頂部部分,有重疊的背景,還有偏移的部分。重疊布局可以使用Stack容器實現,超出容器范圍的偏移可以使用負數間距來實現&…

TreeMap源碼分析 紅黑樹

今天嘗試刨一下TreeMap的祖墳。 底層結構對比 先來看一下與HashMap、LinkedHashMap和TreeMap的對比,同時就當是復習一下: HashMap使用數組存儲數據,并使用單向鏈表結構存儲hash沖突數據,同一個沖突桶中數據量大的時候&#xff…

華為云Flexus+DeepSeek征文|基于Dify構建拍照識題智能學習助手

華為云FlexusDeepSeek征文|基于Dify構建拍照識題智能學習助手 一、構建拍照識題智能學習助手前言二、構建拍照識題智能學習助手環境2.1 基于FlexusX實例的Dify平臺2.2 基于MaaS的模型API商用服務 三、構建拍照識題智能學習助手實戰3.1 配置Dify環境3.2 配置Dify工具…

題解:CF2120E Lanes of Cars

根據貪心,不難想到每次會把最長隊伍末尾的那輛車移動到最短隊伍的末尾。但由于 k k k 的存在,會導致一些冗余移動的存在。設需要挪動 C C C 輛車,則怒氣值可以表示為 f ( C ) k C f(C) kC f(C)kC,其中 f ( C ) f(C) f(C) 是…

Excel基礎:選擇和移動

本文演示Excel中基礎的選擇和移動操作,并在最后提供了一張思維導圖,方便記憶。 文章目錄 一、選擇1.1 基礎選擇1.1.1 選擇單個單元格1.1.2 選擇連續范圍 1.2 行列選擇1.2.1 選擇整行整列1.2.2 選擇多行多列 1.3 全選1.3.1 全選所有單元格1.3.2 智能選擇…

Java面試寶典:基礎四

80. int vs Integer 維度intInteger類型基本數據類型(8種之一)包裝類默認值0null應用場景性能敏感場景(計算密集)Web表單、ORM框架(區分null和0)特殊能力無提供工具方法(如parseInt())和常量(如MAX_VALUE)示例:

RabbitMQ + JMeter 深度集成指南:中間件性能優化全流程解析!

在 2025 年的數字化浪潮中,中間件性能直接決定系統的穩定性和用戶體驗,而 RabbitMQ 作為消息隊列的“老大哥”,在分布式系統中扮演著關鍵角色。然而,高并發場景下,消息堆積、延遲激增等問題可能讓系統不堪重負&#xf…

uniapp image引用本地圖片不顯示問題

1. uniapp image引用本地圖片不顯示問題 在uniapp 開發過程中采用image引入本地資源圖片。 1.1. 相對路徑和絕對路徑問題 在UniApp中開發微信小程序時,引入圖片時,相對路徑和絕對路徑可能會有一些差異。這差異主要涉及到小程序和UniApp框架的文件結構、…

論文閱讀:arxiv 2025 ThinkSwitcher: When to Think Hard, When to Think Fast

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 ThinkSwitcher: When to Think Hard, When to Think Fast https://arxiv.org/pdf/2505.14183#page2.08 https://www.doubao.com/chat/10031179784579842 文章目錄 速覽一、…

智能體記憶原理-prompt設計

智能體記憶的管理與設計開發分為以下幾步: 1.記憶的抽取; 2.記憶的存儲; 3.記憶的搜索; 一、記憶抽取一: FACT_RETRIEVAL_PROMPT f"""你是一位個人信息整理助手,專門負責準確存儲事實、用…

026 在線文檔管理系統技術架構解析:基于 Spring Boot 的企業級文檔管理平臺

在線文檔管理系統技術架構解析:基于Spring Boot的企業級文檔管理平臺 在企業數字化轉型的進程中,高效的文檔管理系統已成為提升協作效率的核心基礎設施。本文將深入解析基于Spring Boot框架構建的在線文檔管理系統,該系統整合公告信息管理、…

AWTK-MVVM的一些使用技巧總結(1)

在項目中用了一段時間的AWTK-MVVM框架,由于AWTK-MVVM本身的文檔十分欠缺,自己經過一段時間的研究折騰出了幾個技巧,在此記錄總結。 用fscript啟用傳統UI代碼 AWTK-MVVM里面重新設計了navigator機制,重定位了navigator_to的調用方…

openwrt使用quilt工具制作補丁

前言:簡單聊一下為什么需要制作補丁,因為openwrt的編譯是去下載很多組件放到dl目錄下面,這些組件都是壓縮包。如果我們要修改這些組件里面的源碼,就需要對這些組件打pacth,也就是把我們的差異點在編譯的時候合入到對應…

強化學習 (1)基本概念

grid-world example 一個由多個格子組成的二維網格 三種格子:accessible可通行的; forbidden禁止通行的; target目標 state狀態 state是智能體相對于環境的狀態(情況) 在grid-world example里,state指的…