短信驗證碼


短信驗證碼

   短信驗證碼服務商有很多。這里我們選擇一個阿里通信來作為短信服務平台。通過這個平台,中小企業及開發者可以在最短的時間內實現短信驗證碼發送、短信服務提醒、語音驗證碼、語音服務通知、IVR及呼叫中心、碼號、后向流量、隱私保護相關的能力,實現互聯網電信化。

官方文檔:

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

登錄阿里通信:

  1. 鏈接:https://www.aliyun.com/product/sms
  2. 然后用淘寶賬號進行登錄。
  3. 登錄成功后,進入到這個界面:https://dysms.console.aliyun.com/dysms.htm#/overview

獲取AccessKey和ACCESS_KEY_SECRET:

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

創建應用:

創建驗證碼:

創建簽名:

  1. 創建驗證碼分為兩大步,先是添加簽名,然后再添加短信模版。首先添加簽名:

  2. 然后來到添加簽名的頁面:

  3. 簽名創建后,需要幾個小時的審核。

添加短信模板:

  1. 點擊添加模板:

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

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的代碼:

     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)


免責聲明!

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



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