今天和大家分享如何实现短信服务,以腾讯云服务为例

目录

一、准备工作

二、短信服务接口开发

2.1 服务配置

2.2接口开发

三、测试短信服务

四、结束语


一、准备工作

腾讯云短信服务会发放免费的个人认证短信和赠送短信总共200条,但时间很短,方便学习的同学使用。

随后进行进行我们的短信配置,选择国内短信。

根据快速入门的标准完成签名管理、正文模板管理、群发短信这几个模块的配置。详细教程参考对应文档操作即可,我这里也尝试了好几次,有的是签名不规范,建议签名类型选择公众号能快速通过。

所有的审核都通过了之后,我们的准备工作也就做好了,可以选择测试我们的短信服务,这里就不细说了,感兴趣的朋友可以创建群发短信任务尝试。如下图:

二、短信服务接口开发

2.1 服务配置

这里我使用的是Django框架对接口进行开发,并且运用了腾讯云开源的第三方库qcloudsms_py。

配置代码如下:

import ssl
import random
ssl._create_default_https_context = ssl._create_unverified_contextfrom qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
import random
import smtplib
import string
from email.header import Header
from email.mime.text import MIMEText
from django.core.cache import cache# 获取云短信应用的appid和appkey
SDKAppID = '1400681577'
AppKey = 'f54b46f0038864a4c842026e9227f74c'
#签名
sms_sign = '程序员九仙公众号'
# 模板ID
template_id = '1407298'
# 输入的手机号# 获取随机6位数
def captcha():captcha = ''for i in range(6):now_number = str(random.randint(0, 9))captcha += now_numberreturn captcha# 发送手机号验证码
def send_pcode(phone_number,captcha):print('获取验证码',captcha)ssender = SmsSingleSender(SDKAppID, AppKey)# 模板中的参数,也就是{1}{2}这两个参数params = [captcha, "2"]  # 当模板没有参数时,`params = []`try:result = ssender.send_with_param(86, phone_number,template_id, params, sign=sms_sign, extend="", ext="")  # 签名参数不允许为空串print(result)except HTTPError as e:print(e)except Exception as e:print(e)return phone_number,captchaif __name__ == '__main__':send_pcode(19524662948,captcha())

其中需要特备注意的是:SDKAppID(短信应用的appid)、AppKey、sms_sign(短信签名名称)、template_id(模板ID)。可参考下图的位置去找:

2.2接口开发

以下代码是获取短信验证码的接口

@api_view()
def gen_code(request):print('--->data', request.GET)phone = request.GET.get('phone', '')if not phone:return Response({'msg': '手机号不能为空'}, status=422)phone,sms_code = sms__.send_pcode(phone,captcha())print(sms_code)cache.set(phone, sms_code, timeout=15*60)return Response({'msg': '已发送'})

其中send_pcode就是刚才上面代码封装好的方法,里面含有腾讯短信服务的相关配置。django框架还需要配置路由、 Views里面的一些中间件等这里就不做详细介绍了。

以下代码是注册账户的接口

"""注册接口"""
@api_view(['POST'])
def register(request):s = PhoneCodeSerializer(data=request.data)if s.is_valid():cache_code = cache.get(s.validated_data['phone'])if TbUser.objects.filter(phone=s.validated_data['phone']).exists():return Response({'msg': '手机号已注册,不能重复注册'}, status=402)if cache_code == s.validated_data['code']:u = TbUser()u.phone = s.validated_data['phone']u.save()token = uuid.uuid4().hexcache.set(token, u.pk, timeout=7 * 24 * 3600)return Response({'phone': u.phone, 'token': token, 'msg': '注册成功'})return Response({'msg': '验证码有误'}, status=403)return Response(s.errors, status=422)

一切准备就绪,下面我们来测试一下我们的短信服务。

三、测试短信服务

测试效果如下图:

会发现我们的接口是通的,并且注册成功了。进入数据库查看以下,如下图:

可以发现刚才我们注册的19524662948这个账号已经成功添加到我们的tb_user表中,并且初始密码为手机号的后六位的加密模式,整个短信服务测试成功!

四、结束语

短信服务除了用来注册,也可以用来登录、找回密码等等,根据不同的业务需求不断变化就好了。觉得还可以的话三连哦,感谢大家的支持。

腾讯云短信服务(详细教程-Django框架、API接口)实现相关推荐

  1. 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)

    2021/8/17/23:01{2021/8/17/23:01}2021/8/17/23:01 文章目录 前言 一.如何成功申请到腾讯云短信服务 1.签名申请 2.正文模板申请 二.发送短信API开发 ...

  2. 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

    文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...

  3. SpringBoot工程接入腾讯云短信服务平台

    由于业务需要,需要使用第三方短信平台,进行验证码的发送.网上的短信服务平台主要由:百度.腾讯.阿里云:采用官方提供的SDK,调用接口即可. 腾讯云短信服务平台和阿里云短信服务平台,一般步骤为:注册-- ...

  4. 项目接入腾讯云短信服务SMS实现向用户发送手机验证码

    1.自述 早在18年的时候,我就在项目中使用过阿里云的短信服务,现在我上阿里云短信控制台看,还能看到当时创建的短信签名,如下图所示. 出于某种原因,我现在想重新申请一个新的签名,却审批失败了,原因是: ...

  5. FLY攻略之第二回: 接入腾讯云短信服务 实现手机验证注册

    接入腾讯云短信服务 实现手机验证注册 上回说到 ,完成了security的接入和登录功能,但是在准备登录尝试security的强大时发现,还没有完成注册功能,根本没有账号提供登录,那么这回,就实现手机 ...

  6. 使用腾讯云短信服务实现Spring Boot短信发送

    发送短信 01 注册微信公众号 02 注册腾讯云账号 03 创建签名和模板 第一步 创建签名 第二部 创建模板 04 发送短信 01 注册微信公众号 在百度搜索微信公众平台,并在进入官网后注册.在账号 ...

  7. 如何利用腾讯云短信服务群发祝福短信?

    节日问候以及日常问候已经是企业维护已有会员的重要方式之一,我们可以利用腾讯云短信服务群发节假日祝福以及问候短信. 准备工作: 1.购买腾讯云短信套餐包[国内短信首购低至0.032元/条] 2.准备短信 ...

  8. 使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题

    使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题 参考文章: (1)使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题 (2)https://www.cnblog ...

  9. Java后端利用腾讯云短信服务发短信

    利用手机验证码进行注册或进行下一步操作已经是非常普遍的,这篇文章就教你如何是用腾讯云短信服务发送手机验证码. 文章目录 一.前提条件 二.代码实现 1.引入依赖 2.Java代码实现 3.代码改进 4 ...

  10. Python使用腾讯云-短信服务发送手机短信

    原创不易,欢迎关注我的微信公众号:司马弈 获取更多精选内容. 腾讯云短信服务介绍 目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 ...

最新文章

  1. 【计算理论】确定性有穷自动机 ( 自动机组成 | 自动机语言 | 自动机等价 )
  2. Luogu 2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
  3. Java IDE——Eclipse下载与安装
  4. Oracle的NVL函数
  5. Flink状态管理与CheckPoint、Savepoint
  6. GIAC | 大数据分析系统在游戏领域的迭代与实践
  7. linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程
  8. java iterable_太糟糕了,Java 8没有Iterable.stream()
  9. 在一个list中增加一个节点
  10. 电脑版剪映v0.6.9内测版
  11. Docker学习总结(48)——Docker 四种网络模式温故
  12. 第一次使用并配置Hibernate
  13. html 漂亮的星空登录模板
  14. 计算机网络:数字签名与数字证书
  15. 幅频特性曲线protues_函数幅频特性曲线
  16. 广播电视相关信息系统 安全等级保护基本要求
  17. Visual C++ 2008入门经典 Ivor Horton(书_在线阅读)
  18. 【基础算法】Gossip协议
  19. 强连通分量(Tarjan算法)和缩点
  20. ALTER PLUGGABLE DATABASE xxx CLOSE卡住

热门文章

  1. 使用阿里字体彩色图标
  2. 搭建自己的以图搜图系统 (一):10 行代码以图搜图
  3. 搭建本地以图搜图服务
  4. python 导入自定义包
  5. 用python将文件夹里的图片统一修改名字
  6. uncode ansi详解
  7. iNFTnews|Web3走进FIFA世界杯
  8. Excel怎么隔列设定不同的背景颜色
  9. Vscode关闭自动更新
  10. 【机器学习】ROC曲线和AUC面积