短信驗證碼服務商有不少。這裏咱們選擇一個阿里通訊來做爲短信服務平臺。經過這個平臺,中小企業及開發者能夠在最短的時間內實現短信驗證碼發送、短信服務提醒、語音驗證碼、語音服務通知、IVR及呼叫中心、碼號、後向流量、隱私保護相關的能力,實現互聯網電信化。html
https://help.aliyun.com/document_detail/59210.htmlpython
在右上角的頭像下,選擇AccessKey:web
建立驗證碼分爲兩大步,先是添加簽名,而後再添加短信模版。首先添加簽名:
django
而後來到添加簽名的頁面:
json
簽名建立後,須要幾個小時的審覈。api
點擊添加模板:
ide
填入模板相關的參數:
ui
Python
的SDK
。SDK
後,而後進入到目錄中,再進入到你的django
開發的虛擬環境中,而後執行命令python setup.py install
便可安裝SDK
。在下載的SDK
文件中,有一個test_sms_send.py
的文件,修改裏面相關的參數,而後再修改const.py
中的AccessKey
和SecretKey
爲以前獲取的參數。運行這個文件就能夠發送成功了。編碼
# 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)