騰訊雲短信測試 (雲短信、短信驗證碼)


 

App、網站中常有手機驗證碼等需求,例如手機號注冊,手機號登錄,密碼找回等。

 

手機注冊短信驗證碼流程大致如下

1. 用戶填寫手機號,點擊獲取驗證碼,發送手機號給服務端

2. 服務端生成隨機驗證碼,調用騰訊雲短信接口向用戶手機發送短信。

3. 騰訊雲短信向用戶發送短信,短信包含驗證碼。

4. 用戶收到帶有驗證碼的短信,在注冊界面輸入驗證碼並提交注冊。

5. 服務端收到用戶提交的驗證碼,核對無誤,則允許注冊。

 

 

現在嘗試用騰訊雲短信做下測試。

 

一 注冊登錄

先進行賬號注冊,騰訊提供了免費100條短信,足夠用於測試了。

騰訊雲:https://console.cloud.tencent.com/smsv2

 

如果大量短信需求,則需要購買。價格如下:

 

 

二 創建簽名

注冊完成后,點擊快速入門,這里會一步步引導你完成整個流程。首先創建短信簽名。

 

因為我沒有個人的app和小程序,只有網站,所以選擇簽名類型"網站",並填寫對應的其它信息。

 

 

 三 創建正文模板

騰訊提供了標准模板可供選擇,也可以自定義模塊。我這里選擇了一個標准模板 "您正在申請手機注冊..."

 

四 等待審核

等待審核,一般很快,幾分鍾我就過了。如果等了很久沒過,可以點擊列表右邊的"催審"。

簽名審核通過:

 

正文審核通過:

 

五 創建NodeJS服務器

需要下載騰訊雲短信的nodejs版本SDK才能發送短信。具體參看:https://cloud.tencent.com/document/product/382/43197

 

我在本地搭建nodejs服務端,入口文件index.js,復制騰訊的發送短信代碼到本地服務端index.js中,代碼可以在 https://cloud.tencent.com/document/product/382/43197 找到。

index.js:

const tencentcloud = require("tencentcloud-sdk-nodejs")

// 導入對應產品模塊的client models。
const smsClient = tencentcloud.sms.v20210111.Client

/* 實例化要請求產品(以sms為例)的client對象 */
const client = new smsClient({
  credential: {
  /* 必填:騰訊雲賬戶密鑰對secretId,secretKey。
   * 這里采用的是從環境變量讀取的方式,需要在環境變量中先設置這兩個值。
   * 你也可以直接在代碼中寫死密鑰對,但是小心不要將代碼復制、上傳或者分享給他人,
   * 以免泄露密鑰對危及你的財產安全。
   * CAM密匙查詢: https://console.cloud.tencent.com/cam/capi */
    secretId: process.env.secretId,
    secretKey: process.env.secretKey,
  },
  /* 必填:地域信息,可以直接填寫字符串ap-guangzhou,或者引用預設的常量 */
  region: "ap-guangzhou",
  /* 非必填:
   * 客戶端配置對象,可以指定超時時間等配置 */
  profile: {
    /* SDK默認用TC3-HMAC-SHA256進行簽名,非必要請不要修改這個字段 */
    signMethod: "HmacSHA256",
    httpProfile: {
      /* SDK默認使用POST方法。
       * 如果你一定要使用GET方法,可以在這里設置。GET方法無法處理一些較大的請求 */
      reqMethod: "POST",
      /* SDK有默認的超時時間,非必要請不要進行調整
       * 如有需要請在代碼中查閱以獲取最新的默認值 */
      reqTimeout: 30,
      /**
       * SDK會自動指定域名。通常是不需要特地指定域名的,但是如果你訪問的是金融區的服務
       * 則必須手動指定域名,例如sms的上海金融區域名: sms.ap-shanghai-fsi.tencentcloudapi.com
       */
      endpoint: "sms.tencentcloudapi.com"
    },
  },
})

/* 請求參數,根據調用的接口和實際情況,可以進一步設置請求參數
 * 屬性可能是基本類型,也可能引用了另一個數據結構
 * 推薦使用IDE進行開發,可以方便的跳轉查閱各個接口和數據結構的文檔說明 */
const params = {
  /* 短信應用ID: 短信SmsSdkAppId在 [短信控制台] 添加應用后生成的實際SmsSdkAppId,示例如1400006666 */
  SmsSdkAppId: "1400787878",
  /* 短信簽名內容: 使用 UTF-8 編碼,必須填寫已審核通過的簽名,簽名信息可登錄 [短信控制台] 查看 */
  SignName: "xxx",
  /* 短信碼號擴展號: 默認未開通,如需開通請聯系 [sms helper] */
  ExtendCode: "",
  /* 國際/港澳台短信 senderid: 國內短信填空,默認未開通,如需開通請聯系 [sms helper] */
  SenderId: "",
  /* 用戶的 session 內容: 可以攜帶用戶側 ID 等上下文信息,server 會原樣返回 */
  SessionContext: "",
  /* 下發手機號碼,采用 e.164 標准,+[國家或地區碼][手機號]
   * 示例如:+8613711112222, 其中前面有一個+號 ,86為國家碼,13711112222為手機號,最多不要超過200個手機號*/
  PhoneNumberSet: ["+8613711112222"],
  /* 模板 ID: 必須填寫已審核通過的模板 ID。模板ID可登錄 [短信控制台] 查看 */
  TemplateId: "449739",
  /* 模板參數: 若無模板參數,則設置為空*/
  TemplateParamSet: ["666"],
}
// 通過client對象調用想要訪問的接口,需要傳入請求對象以及響應回調函數
client.SendSms(params, function (err, response) {
  // 請求異常返回,打印異常信息
  if (err) {
    console.log(err)
    return
  }
  // 請求正常返回,打印response對象
  console.log(response)
})

 

上面所需添加的信息均可以在管理台找到

1  secretId和secretKey

API密鑰在 https://console.cloud.tencent.com/cam/capi ,需要新建一個。

 

2  SmsSdkAppId

應用ID在應用列表中

 

3  短信簽名和模板

可在簽名管理和正文模板管理中找到短信簽名和模板的ID等。

 

4 模板參數

我選擇模板有兩個變量{1}和{2}

 

填寫模板變量如下,短信內容將會顯示 "驗證碼為:123455分鍾內有效"

TemplateParamSet: ["12345","5"],

  

六 運行發送短信

在控制台運行index.js文件,輸入 "node index.js"。

可以看到打印的response顯示OK

 

手機上收到了騰訊發送的短信,到此測試成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM