云短信通知验证码业务是在一个完整系统中必不可少的,本章节就来谈谈腾讯云短信的使用。大家可以试着将这个功能融合进Tornado项目,比如做个通知业务,短信找回密码业务等等。所谓前端使用短信其实就是后端封装成api请求,你前端被动调用,或者主动调用。
一、首先是到腾讯云找到云短信业务去申请签名和短信模板。
签名很难申请的,但是只要签名申请通过,模板格式不错基本能申请下来。申请签名要满足几个条件,我建议用公众号试试,公众号申请不难。下面是我用我的公众号申请的。
下面是申请的短信模板,数字是参数,从1开始
在实际使用中需要在控制台创建应用,生成appid和appkey
二、上代码,一般来说我们在用第三方服务的时候必须是要参考别人提供的文档的,否则你就没法使用
我用的是python
from qcloudsms_py import SmsSingleSender
import random
# 使用腾讯云发送短信
class TestQCloudSMS(object):
def __init__(self,appid,appkey,sign):
self.appid = appid # 准备工作中的SDK AppID,类型:int
self.appkey = appkey # 准备工作中的App Key,类型:str
self.sign = sign # 准备工作中的短信签名,类型:str
self.ssender = SmsSingleSender(self.appid, self.appkey)
def make_code(self):
"""
:return: code 6位随机数字
"""
code = ''
for item in range(6):
code += str(random.randint(0, 9))
return code
def send_YZM(self,phone_num):
"""
:return: 发送验证码
"""
code = self.make_code()
try:
# parms参数类型为list,依次是区号,发送目标的电话,短信模板,参数列表,短信签名
rzb = self.ssender.send_with_param(86, phone_num, 530234, [code],sign=self.sign, extend='', ext='')
except Exception as e:
print(e)
return 0
return code
def send_Hello(self,phone_num,_str):
"""
:return: 发送通知短信
"""
try:
# parms参数类型为list,依次是区号,发送目标的电话,短信模板,参数列表,短信签名
rzb = self.ssender.send_with_param(86, phone_num, 530244, [_str],sign=self.sign, extend='', ext='')
except Exception as e:
print(e)
return False
print(rzb)
return True
if __name__ == '__main__':
appid = 1400304571 # 准备工作中的SDK AppID,类型:int
appkey = 'xxxxxxxxxxxxxxx' # 准备工作中的App Key,类型:str
sign = 'AHUTWYC' # 准备工作中的应用签名,类型:str
# 在创建对象的时候我们把必要的参数初始化
tq=TestQCloudSMS(appid,appkey,sign)
code=tq.send_YZM(xxxxxx)
print(code)
# 传入号码 ,参数
tq.send_Hello(xxxxxx,"春节")
三、测试