阿里雲簡訊服務的使用-----獲取簡訊驗證碼
開通阿里雲簡訊服務
-
申請簽名和模板
-
下載pythonSDK
pip install aliyun-python-sdk-core
-
設定AK和SK
封裝發簡訊程式碼utils/BaseView.py
-
import json
-
from aliyunsdkcore.client import AcsClient
-
from aliyunsdkcore.request import CommonRequest
-
from syl.settings import ALY_ACCESSKEY_SECRET, ALY_ACCESSKEY_ID
-
# phone = ""
-
# phone_code = ""
-
# data = {"code": phone_code}
-
def send_sms(phone, data):
-
# accessKeyId
-
# accessSecret
-
# cn-hangzhou
-
client = AcsClient('<ALY_ACCESSKEY_SECRET>', '<ALY_ACCESSKEY_ID>', 'cn-hangzhou')
-
request = CommonRequest()
-
request.set_accept_format('json')
-
request.set_domain('dysmsapi.aliyuncs.com')
-
request.set_method('POST')
-
request.set_protocol_type('https') # https | http
-
request.set_version('2017-05-25')
-
request.set_action_name('SendSms')
-
request.add_query_param('RegionId', "cn-hangzhou")
-
request.add_query_param('PhoneNumbers', phone)
-
request.add_query_param('SignName', "美多商城")
-
request.add_query_param('TemplateCode', "SMS_185212884")
-
request.add_query_param('TemplateParam', data)
-
response1 = client.do_action(request)
-
# python2: print(response)
-
res=json.loads(str(response1, encoding='utf-8'))
-
簡訊傳送和驗證的邏輯
-
# verificationsapp/view.py 傳送介面 #
-
#verificationsapp/VIEW.PY
-
class SendSMSCode(APIView):
-
def post(self, request):
-
# 獲取資料
-
phone = request.data.get("phone")
-
image_code = request.data.get("image_code")
-
image_code_uuid = request.data.get("image_code_uuid")
-
print('=====================', phone, image_code_uuid, image_code)
-
# 驗證資料
-
if not all([phone, image_code, image_code_uuid]):
-
return Response({"code": 4005, "msg": "引數不全"})
-
# 邏輯與入庫
-
# 3、驗證圖片驗證碼是否正確
-
# 3.1連線redis
-
redis_cli = get_redis_connection("img_code")
-
# 3.2拿著uuid獲取圖片驗證碼
-
redis_img_code = redis_cli.get(image_code_uuid).decode('utf-8')
-
# 3.3比對redis裡的code和發來的code是否一致
-
if image_code.lower() != redis_img_code.lower():
-
return Response({"code": 4009, "msg": "圖片驗證碼錯誤"})
-
# 4、使用阿里雲傳送簡訊
-
# 4.1準備手機驗證碼
-
number = random.randint(100000, 999999)
-
data = {"code": number}
-
print(data)
-
# 4.2使用封裝好的介面傳送簡訊
-
send_sms(phone, data)
-
# 5.將簡訊驗證碼繫結並存入redis
-
redis_cli.setex(phone, 60 * 60, number)
-
# 6.刪除image_code
-
redis_cli.delete(image_code_uuid)
-
return Response({"code": 0, "msg": "傳送成功"})
後記
近期有很多朋友通過私信諮詢有關Python學習問題。為便於交流,點選藍色自己加入討論解答資源基地
相關文章
- 阿里雲簡訊服務實現網站手機簡訊驗證碼阿里網站
- Jave Web阿里雲簡訊服務傳送驗證碼Web阿里
- springboot 專案使用阿里雲簡訊服務傳送手機驗證碼Spring Boot阿里
- 2020最新 使用阿里雲的簡訊服務傳送簡訊阿里
- 阿里雲簡訊服務阿里
- 阿里雲簡訊服務使用代理的坑阿里
- 路飛學城專案之整合騰訊雲簡訊服務、簡訊驗證碼介面
- Laravel 阿里雲簡訊服務包Laravel阿里
- 簡訊驗證碼服務平臺哪個好?
- 為何選擇阿里雲 簡訊服務阿里
- Python3阿里大魚簡訊驗證碼Python阿里
- 華為帳號服務升級,提供通用簡訊驗證碼讀取能力
- hyperf 使用阿里雲簡訊阿里
- Laravel 極簡使用傳送簡訊 支援阿里雲、騰訊雲Laravel阿里
- springboot2.3.0讀取配置檔案中文亂碼+阿里簡訊服務Spring Boot阿里
- 短影片app原始碼,圖形和簡訊驗證碼的自動識別獲取APP原始碼
- 簡訊驗證碼測試項
- 簡訊驗證碼“最佳實踐”
- laravel-sms 實現阿里雲手機傳送簡訊驗證碼及校驗Laravel阿里
- 簡訊提交驗證
- 阿里雲訊息服務使用教程阿里
- Laravel 簡訊擴充套件包 - 目前支援簡訊服務商:阿里雲 / 雲片網 / 騰訊雲 / 簡訊寶 / 賽郵雲 /SendCloud/ 互億無線(支援全網簡訊擴充套件)Laravel套件阿里Cloud
- Java+springboot最簡單的驗證碼的獲取與使用方式JavaSpring Boot
- 直播app開發搭建,圖形和簡訊驗證碼的自動識別獲取APP
- PHP 攻擊簡訊驗證碼介面PHP
- PHP簡訊驗證碼防刷方案PHP
- 創藍253雲通訊平臺---簡訊驗證碼介面說明
- go-zero之阿里發簡訊服務Go阿里
- day80:luffy:簡訊sdk接入&點選獲取驗證碼&註冊功能的實現&Celery實現簡訊傳送功能
- JAVAWEB實現簡訊驗證---夢網雲JavaWeb
- 通過 Laravel 訊息通知使用 EasySms 簡訊服務,讓你的程式碼更簡潔Laravel
- [Python]實現簡訊驗證碼的傳送Python
- 調取創藍253國際簡訊驗證碼-程式碼示例2
- vue實現簡訊驗證碼登入Vue
- SpringSceurity(5)---簡訊驗證碼登陸功能Spring
- SpringSceurity(4)---簡訊驗證碼功能實現Spring
- uniapp 實現簡訊驗證碼登入APP
- 【總結】Java實現簡訊驗證碼Java