标题

1.思路

1.思路

1.创建一个utile文件SmsTools.py进行封装

from ronglian_sms_sdk import SmsSDK

import json, redis

from flask import current_app

class SmsTool():

"""

发送短信类

tid = '容联云通讯创建的模板ID'

mobile = '手机号1,手机号2'

datas = ('变量1', '变量2') 验证码,有效时间

"""

# 构造函数

def __init__(self):

accId = current_app.config.get("RL_ACC_ID")

accToken = current_app.config.get("RL_ACC_TOKEN")

appId = current_app.config.get("RL_APP_ID")

self.sdk = SmsSDK(accId, accToken, appId)

host = current_app.config.get('REDIS_HOST')

port = current_app.config.get('REDIS_PORT')

_db = current_app.config.get('REDIS_DB')

self.rds = redis.Redis(host=host, port=port, db=_db)

def send(self, phone, code):

"""

发送短信接口

:param phone: 手机号

:param code: 验证码

:return: Bool 发送成功开始失败

"""

# 发送短信类

t = current_app.config.get("SMS_TIME") # 有效期,从配置文件获取

tid = current_app.config.get("RL_TID")

# 把验证码存到数据库中

key = 'sms_%s' % phone

self.rds.set(key, code, ex=t * 60)

# 发送验证码

datas = (code, t)

rs = self.sdk.sendMessage(tid, phone, datas) # 返回的是json字符串

re_data = json.loads(rs) # 转换为字典

print(re_data)

if re_data["statusCode"] == "000000":

return True

return False

if __name__ == '__main__':

# 开启上下文环境

from app import app

with app.app_context():

s = SmsTool()

rs = s.send("17712959750", "6666")

print(rs)

蓝图

# 获取验证码

class SmsView(Resource):

def post(self):

# 获取参数

req = reqparse.RequestParser()

req.add_argument('phone', required=True)

# 校验参数

args = req.parse_args()

code = random.randint(100000, 999999)

# 发送验证码

s = SmsTool()

rs = s.send(args['phone'], code)

if rs:

return jsonify({

'code': 200,

'msg': '发送成功'

})

else:

return jsonify({

'code': 400,

'msg': '发送失败'

})

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。