开通阿里云短信服务
申请签名和模板
下载pythonSDK
pip install aliyun-python-sdk-core
设置AK和SK
发送短信代码
-- coding: utf-8 --
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
def soum_code(phone,data):
client = AcsClient('LTAI4G53mfmtK93EMJTwfFRy', 'nLpRi04FJknXZRYNOJVhmSDj02aEN1', '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', "ABC商城")
request.add_query_param('TemplateCode', "SMS_205397853")
request.add_query_param('TemplateParam', data)
response = client.do_action(request)
# python2: print(response)
print(str(response, encoding='utf-8'))
ser=json.loads(str(response, encoding='utf-8'))
if ser['Code']=='OK':
return True
else:
return False
将其放入MyBaseView中进行封装
class sms_codes(APIView):
def post(self,request):
phone=request.data.get('phone')
print(phone)
data=random.randint(100000,999999)
date={'code':data}
ser=soum_code(phone,date)
print(ser)
if ser:
return Response({'msg':'发送','code':200})
else:
return Response({'msg':'shibai'})