Java后端利用腾讯云短信服务发短信
利用手机验证码进行注册或进行下一步操作已经是非常普遍的,这篇文章就教你如何是用腾讯云短信服务发送手机验证码。
文章目录
一、前提条件
二、代码实现
1.引入依赖
2.Java代码实现
3.代码改进
4.实现效果
三,关于项目中验证码验证逻辑分享
1.发送手机验证码并进行Redis存储
2.验证逻辑
一、前提条件
腾讯云官网账号,已开通短信服务
需要用到的参数 1.短信签名id,(需要审核)
2.短信正文签名模板,(需要创建审核)
3.应用id,(创建)
4.有剩余短信包(新用户开通后有免费200条,可购买)
上面是需要具备的前提条件,腾讯云还可以设置条数限制。代码开发需要用到上面的参数,不懂得如何获得参数的可以去看这个视频 https://www.bilibili.com/video/BV1KE411K7Sd
二、代码实现
1.引入依赖
<!--腾讯云手机验证码--><dependency><groupId>com.github.qcloudsms</groupId><artifactId>qcloudsms</artifactId><version>1.0.6</version></dependency>
2.Java代码实现
package com.liyingjie.lyjalipay.controller;import cn.hutool.core.util.RandomUtil;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import com.liyingjie.lyjalipay.domain.Sms;
import org.json.JSONException;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.IOException;@SpringBootTest
class SmsControllerTest {@Testpublic void sms(){//腾讯云固定参数int appid = 1400655460; //腾讯云应用idString appkey="133213"; //腾讯云应用Keyint templateId= 1354718; //模板idString smsSign="杰杰不会hellowor"; //签名内容//可变参数String phoneNumber ="123456";//手机号码String code="131";//手机验证码String min="5";//有效时长try {String[] params = {code,min}; //param1,手机验证码;param2,有效时长,配合正文模板参数SmsSingleSender smsSingleSender = new SmsSingleSender(appid, appkey);SmsSingleSenderResult smsSingleSenderResult = smsSingleSender.sendWithParam("86", phoneNumber, templateId, params, smsSign, "", "");System.out.println(smsSingleSenderResult);} catch (IOException e) {e.printStackTrace();} catch (HTTPException | JSONException e) {e.printStackTrace();}}
}
3.代码改进
package com.liyingjie.lyjalipay.controller;import cn.hutool.core.util.RandomUtil;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import com.liyingjie.lyjalipay.domain.Sms;
import org.json.JSONException;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.IOException;@SpringBootTest
class SmsControllerTest {@Testpublic void sms(){//腾讯云固定参数int appid = 1400655460; //应用idString appkey="76bcf5ddb58******"; //应用Keyint templateId= 222222;//模板idString smsSign="杰杰不会hellowor";//用户参数Sms sms =new Sms();sms.setPhoneNumber("132");sms.setCode(RandomUtil.randomNumbers(6));//验证码6位随机sms.setMin(5); //验证码有效时长try {String[] params = {sms.getCode(),Integer.toString(sms.getMin())};SmsSingleSender smsSingleSender = new SmsSingleSender(appid, appkey);SmsSingleSenderResult smsSingleSenderResult = smsSingleSender.sendWithParam("86", sms.getPhoneNumber(), templateId, params, smsSign, "", "");System.out.println(smsSingleSenderResult);} catch (IOException e) {e.printStackTrace();} catch (HTTPException | JSONException e) {e.printStackTrace();}}
}
4.实现效果
三,关于项目中验证码验证逻辑分享
以上只有验证码发送,在前后端项目中要实现验证码验证,可以用redis缓存数据库实现
1.发送手机验证码并进行Redis存储
将上面的发送手机验证码封装成一个工具类SmsUtil里的一个方法。返回随机六位的验证码
将返回的验证码存储在redis中,以手机号码为key,验证码为值,有效时间统一一下。
@ApiOperation("发送手机验证码")@GetMapping("/send/{phoneNumber}")public AjaxResult sendCode(@PathVariable("phoneNumber") String phoneNumber){String phoneCode = SmsUtil.send(phoneNumber);redisCache.setCacheObject(phoneNumber,phoneCode,5, TimeUnit.MINUTES);return AjaxResult.success(phoneCode);}
2.验证逻辑
在上一步发送完成之后,提交表单参数时携带者手机号与验证码参数,
String redisCode = redisCache.getCacheObject(phoneNumber);
Boolean flag = redisCode.equals(phoneCode)
验证成功后再进行下一步操作,否则不执行
Java后端利用腾讯云短信服务发短信相关推荐
- 轻松集成腾讯云短信服务实现短信发送(Java实现)
不论是阿里云还是腾讯云,要想在网站上实现短信发送功能,首先得保证你的网站域名是通过备案的,因为短信签名是需要用到备案过的域名截图,所以域名通过了,申请很快就会审批成功了. (至于备案的话,需要你先购买 ...
- 如何利用腾讯云短信服务群发祝福短信?
节日问候以及日常问候已经是企业维护已有会员的重要方式之一,我们可以利用腾讯云短信服务群发节假日祝福以及问候短信. 准备工作: 1.购买腾讯云短信套餐包[国内短信首购低至0.032元/条] 2.准备短信 ...
- 微信小程序利用腾讯云IM发送语音 + 图片
微信小程序利用腾讯云IM发送语音 + 图片 能做到这里 说明你已经可以发送普通文本了 如果没有的话可以看一下我的上一篇文章 有完整的讲解 效果图 语音聊天 发送图片 传送 → 发送图片 发送语音 ** ...
- 健康管理系统第六天(移动端开发之体检预约_经典五表联查_调用阿里云提供的短信服务进行短信验证码发送)
一.移动端开发 1.移动端开发方式 随着移动互联网的兴起和手机的普及,目前移动端应用变得愈发重要,成为了各个商家的必争之地.例如,我们可以使用手机购物.支付.打车.玩游戏.订酒店.购票等, 以前只能通 ...
- web利用腾讯云点播上传视频
web利用腾讯云点播上传视频到云服务器 第一步导入 <script src="//imgcache.qq.com/open/qcloud/js/vod/sdk/ugcUploader. ...
- 使用阿里云的短信服务发送短信
原文地址使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发 ...
- 利用腾讯云函数做蓝奏云解析API
利用腾讯云函数做蓝奏云解析API 前言 忽然在网上看到网友说tenapi的蓝奏云解析不能用了,恰巧又在B站上看到某up主的相关文章,一时起意就用up主的代码稍加更改,改造了个能在腾讯云函数跑起来的版本 ...
- 【腾讯云服务器+PicGo搭建自己的图床】利用腾讯云服务器搭建自己的私人图床
起因 一直以来用的gitee图床挂了,本来想折腾折腾再换个图床的,但仔细想想任何图床都有再次挂掉的风险,千好万好不如自己有,之前一直图方便懒就没搭建自己的图床,今天趁这个机会自己利用腾讯云COS搭建一 ...
- 利用腾讯云 SDK 动态更新dnspod域名IP(原创)
之前一直用f3322.net的域名解析,但是因为觉得它不够稳定,所以近期改用dnspo免费域名解析,为了更稳定地使用,我利用腾讯云SDK实现了ip地址动态更新 由于本人的opwrt不知 ...
最新文章
- 客快物流大数据项目(五):Docker介绍
- 在Linux执行命令报错”Arg list too long”的原因分析
- MySQL 5.1完全卸载
- oracle 10.2 连接超时,debian9 python3.6连接oracle10.2
- 用python做自我介绍_python入门教程NO.2 用python做个自我介绍
- 里能嵌jquery吗_白芸豆里的淀粉阻断成分,能帮助减肥是真的吗?
- python已知有列表_python 列表常用方法
- iphone 低版本渲染不出来内容的一种解决办法
- C语言寻找第k小元素,小技巧——查找第k小的元素
- python题目-兔子生育计数
- 基于C++实现考试报名系统
- 在VS2017中添加WTL窗口
- cython使用初步
- elixir 读取 marc条目 目次区字段信
- Free IPA docker 安装记录
- 基于PHP语言Laravel+Layui后台代码生成工具
- WINDOWSnbsp;XP启动控制面板命令大全
- 易优cms iis怎么去掉index.php Eyoucms快速入门
- 电脑密码忘记了怎么办?不用U盘,轻松开启电脑
- java毕业设计电动机营销系统Mybatis+系统+数据库+调试部署