1. 程式人生 > 其它 >騰訊雲簡訊業務

騰訊雲簡訊業務

由於專案在註冊、登入、找回密碼 時需要傳送簡訊驗證的功能,我們使用騰訊雲簡訊做。

為什麼要用騰訊雲簡訊呢? 因為註冊就送 100條免費簡訊 的額度。哈哈哈哈,發簡訊的功能你就不用花錢了。

1.註冊騰訊雲 & 開通雲簡訊

1.1 註冊並認證

註冊一個騰訊雲賬戶,騰訊雲中提供了很多功能:雲伺服器、雲端儲存你、雲直播、雲簡訊等很多功能。

註冊地址:https://cloud.tencent.com/

根據提示一步步進行註冊即可,例如:




實名註冊時,什麼行業、通訊等資訊,按照自己的的實際情況填寫即可,實在不知道的可以隨便填。

1.2 開通雲簡訊

騰訊雲註冊成功之後,登入騰訊雲並去開通 雲簡訊服務,開通簡訊服務後才能發簡訊。

開通地址:https://console.cloud.tencent.com/smsv2

根據流程進行開通之後,就可以進入雲簡訊控制檯。

2. 建立應用

建立應用並將應用中生成的 SDK AppIDApp Key 複製下來,之後通過python傳送簡訊時需要用到。

3. 建立簽名

在騰訊雲簡訊簽名時需要認證,認證需要填寫簽名型別:網站、APP、小程式、公眾號,前三種需要提供企業資質等複雜的東西,個人公眾號認證會比較便捷,所以推薦個人開發的話使用 公眾號 進行簽名。

so,咱們需要先 申請一個公眾號 然後 建立簽名

3.1 申請微信訂閱號

註冊地址:https://mp.weixin.qq.com/

3.2 建立簽名

根據自己的需求選擇 國內簡訊/國際簡訊 中的簽名管理,進行建立簽名。

切記:簽名型別選擇 公眾號 ,並根據提示上傳相關資料即可。

簽名建立並稽核通過後,把你提交的 簽名內容 值儲存下來,之後Python傳送簡訊用。

提醒:簽名建立完成之後,需要等待騰訊進行稽核,也可以聯絡他們客服QQ加速稽核。

4. 建立模板

根據自己需求建立簡訊模板,以後根據模板進行傳送簡訊,例如:您的註冊驗證碼:{1},如非本人操作,請忽略本簡訊!

模板建立並稽核通過之後,把 模板ID 儲存下來,之後Python傳送簡訊用。

5. 傳送簡訊

上述的準備工作做完中我們開通相關服務並獲取到如下幾個值:

  • 建立應用,獲取到 appidappkey
  • 建立簽名,獲取 簽名內容
  • 建立模板,獲取 模板ID

接下來開始使用Python傳送簡訊。

第一步:安裝SDK

pip install qcloudsms_py

第二步:基於SDK傳送簡訊

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
def send_sms_single(phone_num, template_id, template_param_list):
    """
    單條傳送簡訊
    :param phone_num: 手機號
    :param template_id: 騰訊雲簡訊模板ID
    :param template_param_list: 簡訊模板所需引數列表,例如:【驗證碼:{1},描述:{2}】,則傳遞引數 [888,666]按順序去格式化模板
    :return:
    """
    appid = 112142311  # 自己應用ID
    appkey = "8cc5b87123y423423412387930004"  # 自己應用Key
    sms_sign = "Python之路"  # 自己騰訊雲建立簽名時填寫的簽名內容(使用公眾號的話這個值一般是公眾號全稱或簡稱)
    sender = SmsSingleSender(appid, appkey)
    try:
        response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign)
    except HTTPError as e:
        response = {'result': 1000, 'errmsg': "網路異常傳送失敗"}
    return response
def send_sms_multi(phone_num_list, template_id, param_list):
    """
    批量傳送簡訊
    :param phone_num_list:手機號列表
    :param template_id:騰訊雲簡訊模板ID
    :param param_list:簡訊模板所需引數列表,例如:【驗證碼:{1},描述:{2}】,則傳遞引數 [888,666]按順序去格式化模板
    :return:
    """
    appid = 112142311
    appkey = "8cc5b87123y423423412387930004"
    sms_sign = "Python之路"
    sender = SmsMultiSender(appid, appkey)
    try:
        response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
    except HTTPError as e:
        response = {'result': 1000, 'errmsg': "網路異常傳送失敗"}
    return response
if __name__ == '__main__':
    result1 = send_sms_single("15131255089", 548760, [666, ])
    print(result1)
    result2 = send_sms_single( ["15131255089", "15131255089", "15131255089", ],548760, [999, ])
    print(result2)

6. 關於頻率限制

騰訊雲簡訊後臺可以進行 簡訊頻率 的限制。

但是,由於我們是免費使用者所以無法進行設定,只能使用預設的配置(30秒發1條/1小時發5條/1天發10條)。