短信驗證碼

短信驗證碼

   短信驗證碼服務商有不少。這裏咱們選擇一個阿里通訊來做爲短信服務平臺。經過這個平臺,中小企業及開發者能夠在最短的時間內實現短信驗證碼發送、短信服務提醒、語音驗證碼、語音服務通知、IVR及呼叫中心、碼號、後向流量、隱私保護相關的能力,實現互聯網電信化。html

官方文檔:

https://help.aliyun.com/document_detail/59210.htmlpython

登陸阿里通訊:

  1. 連接:https://www.aliyun.com/product/sms
  2. 而後用淘寶帳號進行登陸。
  3. 登陸成功後,進入到這個界面:https://dysms.console.aliyun.com/dysms.htm#/overview

獲取AccessKey和ACCESS_KEY_SECRET:

在右上角的頭像下,選擇AccessKey:web

建立應用:

建立驗證碼:

建立簽名:

  1. 建立驗證碼分爲兩大步,先是添加簽名,而後再添加短信模版。首先添加簽名:
    django

  2. 而後來到添加簽名的頁面:
    json

  3. 簽名建立後,須要幾個小時的審覈。api

添加短信模板:

  1. 點擊添加模板:
    ide

  2. 填入模板相關的參數:
    ui

Python發送短信驗證碼:

  1. 這裏下載PythonSDK
  2. 這裏查看文檔。
  3. 下載完SDK後,而後進入到目錄中,再進入到你的django開發的虛擬環境中,而後執行命令python setup.py install便可安裝SDK
  4. 在下載的SDK文件中,有一個test_sms_send.py的文件,修改裏面相關的參數,而後再修改const.py中的AccessKeySecretKey爲以前獲取的參數。運行這個文件就能夠發送成功了。編碼

    # const.py文件
     # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根據實際申請的帳號信息進行替換
     ACCESS_KEY_ID = "你的用戶的AccessKey"
     ACCESS_KEY_SECRET = "你的用戶的Secretkey"

    而後修改test_sms_send.py的代碼:spa

    import sys
     from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
     from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
     from aliyunsdkcore.client import AcsClient
     import uuid
     from aliyunsdkcore.profile import region_provider
     from aliyunsdkcore.http import method_type as MT
     from aliyunsdkcore.http import format_type as FT
     import const
     import json
    
     """ 短信業務調用接口示例,版本號:v20170525 Created on 2017-06-12 """
     # 注意:不要更改
     REGION = "cn-hangzhou"
     PRODUCT_NAME = "Dysmsapi"
     DOMAIN = "dysmsapi.aliyuncs.com"
    
     acs_client = AcsClient(const.ACCESS_KEY_ID, const.ACCESS_KEY_SECRET, REGION)
     region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
    
     def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
         smsRequest = SendSmsRequest.SendSmsRequest()
         # 申請的短信模板編碼,必填
         smsRequest.set_TemplateCode(template_code)
    
         # 短信模板變量參數
         if template_param is not None:
             smsRequest.set_TemplateParam(template_param)
    
         # 設置業務請求流水號,必填。
         smsRequest.set_OutId(business_id)
    
         # 短信簽名
         smsRequest.set_SignName(sign_name)
    
         # 數據提交方式
         # smsRequest.set_method(MT.POST)
    
         # 數據提交格式
         # smsRequest.set_accept_format(FT.JSON)
    
         # 短信發送的號碼列表,必填。
         smsRequest.set_PhoneNumbers(phone_numbers)
    
         # 調用短信發送接口,返回json
         smsResponse = acs_client.do_action_with_exception(smsRequest)
    
         # TODO 業務處理
         return smsResponse
    
     if __name__ == '__main__':
         __business_id = uuid.uuid1()
         #print(__business_id)
         params = {
             'code': 1234
         }
         #params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'
         print(send_sms(__business_id, "18515287309", "小飯桌應用", "SMS_68465012", json.dumps(params)
相關文章
相關標籤/搜索