手機短信驗證碼

下列代碼都是以本身的項目實例講述的,相關的文本內容不多,主要說明全在代碼註釋中。python

我是使用阿里云云通訊的短信服務,第一次使用會摸不着頭緒,這裏咱們須要作些準備工做:json

  一、登錄本身的帳號進入阿里雲官網,沒有帳號的朋友們自行註冊api

  二、在導航欄上搜索「短信服務」,沒有添加的話應該會有「免費開通」按鈕,再進入管理控制檯(咱們須要添加這個短信服務板塊,這樣控制檯會有短信服務這個模塊),管理控制檯的頁面:服務器

 

 

 

 

   三、添加api密鑰,成功以後會自行生成一個入口api密鑰 id 和 secret。restful

 

 

   四、在第一張圖片上點擊「添加簽名」和「添加模板」,添加完相關信息,須要相關人員審覈。添加模板時須要注意:dom

 

 

 

  五、寫完全部的步驟,記得充值,衝個5塊錢應該夠了吧(反正是測試用的)函數

  六、準備工做作完,如今接下來的都是複製粘貼代碼了(python3的朋友須要:pip install aliyun-python-sdk-core-v3`  python2的朋友:pip install aliyun-python-sdk-core)測試

  七、發送短信api接口配置阿里雲

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


class Alidayu(object):
    """
    api接口的初始化操做
    accessKeyId: api密鑰的入口id
    accessSecret: api密鑰的入口密碼
    regionId: 通常是你雲服務器的地區
    以上三個參數必不可少,封裝成客戶端實例
    發送配置(都是固定的配置)分別是發送短信的格式、域名、方式、協議、版本
    """
    def __init__(self):
        self.accessKeyId = "你的密鑰入口id"
        self.accessSecret = "你的密鑰入口secret"
        self.regionId = "cn-shanghai"   # 通常是上海或者杭州
        self.client = AcsClient(self.accessKeyId, self.accessSecret, self.regionId)

        # 發送配置(都是固定的配置)
        self.comRequest = CommonRequest()
        self.comRequest.set_accept_format("json")
        self.comRequest.set_domain("dysmsapi.aliyuncs.com")
        self.comRequest.set_method("POST")
        self.comRequest.set_protocol_type("https")
        self.comRequest.set_version("2017-05-25")

    def send_sms(self, telephone, code):
        """
        發送配置定義好,如今就是發送信息(驗證碼)
        發送信息以前的四個參數也是必不可少的:
        手機號碼、短信簽名名稱、短信模板CODE、短信模板的內容參數值
        最後經過客戶發送便可
        :param telephone: 手機號碼
        :param code: 隨機驗證碼
        :return:
        """
        self.comRequest.set_action_name("SendSms")
        self.comRequest.add_query_param("PhoneNumbers", "你的手機號碼")
        self.comRequest.add_query_param("SignName", "你的短信簽名名稱")
        self.comRequest.add_query_param("TemplateCode", "你的模板CODE")
        # 這個是你配置的短信模板的內容裏的參數名稱,變量名必定要同樣
        self.comRequest.add_query_param("TemplateParam", "{\"code\":\"%s\"}" % code)
        response = self.client.do_action(self.comRequest)
        print(response)
        return response

  八、編寫一個視圖函數,經過url訪問就能夠了url

@bp.route("/sms_captcha")
def sms_captcha():
    telephone = request.args.get("telephone")
    if not telephone:
        return restful.params_error(message="請輸入手機號碼")

    # 借用圖形驗證碼類中的獲取隨機驗證碼的方法
    captcha = Captcha.gene_text(numbers=4).replace(" ", "")
    # 上面的代碼你能夠刪掉,把telephone換成具體的手機號碼,captcha換成具體的驗證碼值
    alidayu = Alidayu()
    if alidayu.send_sms(telephone, captcha):
        # 能夠print打印一下驗證
        return restful.success()
    else:
        return restful.params_error(message="驗證碼發送失敗!")
相關文章
相關標籤/搜索