使用的是荣联云通讯短信平台
https://www.yuntongxun.com/
1. 注册账号
2. 创建应用
控制台 --> 应用管理 --> 创建应用
可以使用默认应用进行测试
3. 添加测试号码
平台管理 --> 测试号码
4.将以下代码写入视图函数中
安装 request 模块
pip3 install requests
import hashlib,base64,requests,json
from datetime import datetime
class YunTongXin:
__base_url = 'https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig={}'
# 初始化代码
def __init__(self, accid='', appid='', appkey='', temid='',temp_motice='45分钟'):
self.accid = accid
self.appid = appid
self.appkey = appkey
self.temid = temid
self.temp_motice = temp_motice
# md5编码
def __md5(self, raw):
md5 = hashlib.md5()
md5.update(raw.encode('utf-8'))
return md5.hexdigest()
# 获取格式化时间
def __get_format_time(self):
return str(datetime.now().strftime('%Y%m%d%H%M%S'))
# base64编码
def __get_base64_code(self, raw):
st = raw.encode()
return base64.b64encode(st).decode('utf-8')
# 请求包头
def __request_url(self, stamp):
sig = self.__md5(self.accid + self.appkey + stamp).upper() # 生成签名
return self.__base_url.format(self.accid, sig) # https 请求地址
# 请求包头字段
def __request_header(self, stamp):
authorization = self.__get_base64_code(self.accid + ':' + stamp)
return {
'Authorization': authorization, 'Accept': 'application/json;',
'Content-Type': 'application/json;charset=utf-8;'}
# 请求包体
def __request_body(self, phone, code):
return {
"to": ','.join(phone),
"appId": self.appid,
"templateId": self.temid,
"datas": [code, self.temp_motice]
}
# 返回结构化结果
def __ajaxReturn(self, code=92000, msg='', data=[]):
dict = {"code": code, "msg": msg, "data": data}
return json.dumps(dict)
# 发送短信
def send(self, phone=[], code=''):
stamp = self.__get_format_time() # 获取当前格式化时间
url = self.__request_url(stamp) # 请求包地址
headers = self.__request_header(stamp) # 请求包头字段
data = self.__request_body(phone, code)
obj = requests.post(url, headers=headers, json=data)
dict = json.loads(obj.text)
if dict.get('statusCode') == '000000':
return self.__ajaxReturn(msg="发送成功", data={})
else:
return self.__ajaxReturn(code=92001, msg='发送失败', data={"code": dict.get('statusCode')})
调用部分写入点击获取短信的视图函数中
# 短信发送
def myhome_sendMsg(request):
# 调用
accid = '' # 账号id
appid = '' # 应用id
appkey = '' # key
temid = '1' # 默认模版
temp_motice = '30分钟' # 参数
phone = ['电话1','电话2'] # 电话号码
code = '' # 短信验证码
# 实例化
yun = YunTongXin(accid=accid,appid=appid,appkey=appkey,temid=temid,temp_motice=temp_motice)
# 发送短信
yun.send(phone, code)
return HttpResponse('发送成功')