Python3阿里大魚簡訊驗證碼
阿里大魚.py
#encoding:utf-8
import hashlib
from timeimport time
import logging
import requests
class AlidayuAPI(object):
APP_KEY_FIELD ='ALIDAYU_APP_KEY'
APP_SECRET_FIELD ='ALIDAYU_APP_SECRET'
SMS_SIGN_NAME_FIELD ='ALIDAYU_SIGN_NAME'
SMS_TEMPLATE_CODE_FIELD ='ALIDAYU_TEMPLATE_CODE'
def __init__(self, app=None):
self.url ='https://eco.taobao.com/router/rest'
self.headers = {
'Content-type':'application/x-www-form-urlencoded;charset=UTF-8',
"Cache-Control":"no-cache",
"Connection":"Keep-Alive",
}
if app:
self.init_app(app)
def init_app(self,app):
config = app.config
try:
self.key = config[self.APP_KEY_FIELD]
self.secret = config[self.APP_SECRET_FIELD]
self.sign_name = config[self.SMS_SIGN_NAME_FIELD]
self.api_params = {
'sms_free_sign_name': config[self.SMS_SIGN_NAME_FIELD],
'sms_template_code': config[self.SMS_TEMPLATE_CODE_FIELD],
'extend':'',
'sms_type':"normal",
"method":"alibaba.aliqin.fc.sms.num.send",
"app_key":self.key,
"format":"json",
"v":"2.0",
"partner_id":"",
"sign_method":"md5",
}
except Exception as e:
logging.error(e.args)
raise ValueError('請填寫正確的阿里大魚配置!')
def send_sms(self,telephone,**params):
self.api_params['timestamp'] =str(int(time() *1000))
self.api_params['sms_param'] =str(params)
self.api_params['rec_num'] = telephone
newparams ="".join(["%s%s" % (k, v)for k, vin sorted(self.api_params.items())])
newparams =self.secret + newparams +self.secret
sign = hashlib.md5(newparams.encode("utf-8")).hexdigest().upper()
self.api_params['sign'] = sign
resp = requests.post(self.url,params=self.api_params,headers=self.headers)
data = resp.json()
try:
result = data['alibaba_aliqin_fc_sms_num_send_response']['result']['success']
return result
except:
print('='*10)
print("阿里大於錯誤資訊:",data)
print('='*10)
return False
主app.py
def create_app():
app = Flask(__name__)
alidayu.init_app(app)
return app
app = create_app()
if __name__ =='__main__':
app.run()
檢視層.py
@bp.route('/sms_captcha/',methods=['POST'])
def sms_captcha():
# 時間戳 手機 引
#md5(ts+telephone+salt)
form = SMSCaptchaForm(request.form)
if form.validate():
telephone = form.telephone.data
captcha = Captcha.gene_text(number=4)
zlcache.set(telephone, captcha)
print("傳送的簡訊驗證碼是:",captcha)
send_sms_captcha.delay(telephone,captcha)
if alidayu.send_sms(telephone,code = captcha):
zlcache.set(telephone, captcha)
return restful.success()
else:
return restful.params_error()
else:
return restful.params_error(message="引數錯誤")
相關文章
- 阿里雲簡訊服務的使用-----獲取簡訊驗證碼阿里
- 阿里雲簡訊服務實現網站手機簡訊驗證碼阿里網站
- Jave Web阿里雲簡訊服務傳送驗證碼Web阿里
- 簡訊驗證碼測試項
- 簡訊驗證碼“最佳實踐”
- laravel-sms 實現阿里雲手機傳送簡訊驗證碼及校驗Laravel阿里
- PHP 攻擊簡訊驗證碼介面PHP
- PHP簡訊驗證碼防刷方案PHP
- springboot 專案使用阿里雲簡訊服務傳送手機驗證碼Spring Boot阿里
- app直播原始碼,登入時輸入驗證碼、簡訊驗證身份APP原始碼
- 簡訊提交驗證
- vue實現簡訊驗證碼登入Vue
- SpringSceurity(5)---簡訊驗證碼登陸功能Spring
- SpringSceurity(4)---簡訊驗證碼功能實現Spring
- uniapp 實現簡訊驗證碼登入APP
- 【總結】Java實現簡訊驗證碼Java
- 手機號碼簡訊驗證註冊
- 商城網站新增了最新阿里大魚簡訊註冊登入網站阿里
- 一文帶你看透簡訊驗證碼
- [Python]實現簡訊驗證碼的傳送Python
- 目前簡訊驗證碼平臺哪個好用?
- 直播平臺原始碼,簡訊驗證碼傳送demo原始碼
- 簡訊驗證實現方式
- 簡訊驗證碼服務平臺哪個好?
- 驗證碼簡訊 API 接入指南:Java 語言示例程式碼APIJava
- 如何實現直播間原始碼重要的簡訊驗證碼功能原始碼
- 簡訊語音驗證碼發展的必然趨勢
- TP5 實現簡訊驗證碼註冊功能
- 路飛學城專案之整合騰訊雲簡訊服務、簡訊驗證碼介面
- 創藍253雲通訊平臺---簡訊驗證碼介面說明
- ChatGPT 虛擬號碼:手機號碼,簡訊驗證碼接碼推薦ChatGPT
- 調取創藍253國際簡訊驗證碼-程式碼示例2
- 線上直播原始碼,通過手機號簡訊接收驗證碼原始碼
- Spring Security Oauth2.0 實現簡訊驗證碼登入SpringOAuth
- 安全可靠的簡訊驗證碼API,毫秒級反應API
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- 簡單的數字驗證碼破解
- JAVAWEB實現簡訊驗證---夢網雲JavaWeb