腾讯云短信申请与使用
目录
一、申请微信公众号
1.网页搜索微信公众平台
2.注册
3.类型选择订阅号
4.信息登记为个人
二、进入腾讯云创建签名管理和正文模板
1.网页搜索腾讯云官网
2.选择国内短信
3.申请签名管理(不太好申请)
4.创建正文模板(使用标准模板)比较好申请
5.通过官方文档使用腾讯云短信(下面有自己写的代码)
6.在IDEA中使用
6.1引入依赖
6.2创建工具类
6.3创建controller
6.4service和serviceImpl
6.5调用随机验证码的工具类
6.6最后使用swagger页面测试即可
导入swagger依赖
在测试之前需要开启Linux上的redis
一、申请微信公众号
1.网页搜索微信公众平台
2.注册
使用邮箱注册,并绑定基本信息
3.类型选择订阅号
4.信息登记为个人
接下来就是公众号名称与功能介绍 和设置公众号(越简洁越容易记越好)
创建成功之后,更换头像和名称(刚注册成功之后,三天内名称不换则自动注销)
更改功能设置(允许通过名称搜索到本账号)
二、进入腾讯云创建签名管理和正文模板
1.网页搜索腾讯云官网
进入后搜索短信
2.选择国内短信
3.申请签名管理(不太好申请)
刚开始通过名称搜索不到公众号,但通过微信号可以搜索到
4.创建正文模板(使用标准模板)比较好申请
5.通过官方文档使用腾讯云短信(下面有自己写的代码)
6.在IDEA中使用
6.1引入依赖
<dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.270</version></dependency>
6.2创建工具类
package com.chang.msmservice.utils;import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.sms.v20210111.SmsClient;
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
import com.tencentcloudapi.sms.v20210111.models.SendStatus;public class TxCode {private static final String SECRET_ID = "主页搜索API密钥管理(SecretId)";private static final String SECRET_KEY= "主页搜索API密钥管理(SecretKey)";public static boolean SendCode(String phoneNumber,String code) {try {// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取Credential cred = new Credential(SECRET_ID, SECRET_KEY);// 实例化一个http选项,可选的,没有特殊需求可以跳过HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint("sms.tencentcloudapi.com");// 实例化一个client选项,可选的,没有特殊需求可以跳过ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);// 实例化要请求产品的client对象,clientProfile是可选的/* SDK默认用TC3-HMAC-SHA256进行签名* 非必要请不要修改这个字段 */clientProfile.setSignMethod("HmacSHA256");/* 实例化要请求产品(以sms为例)的client对象* 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 */SmsClient client = new SmsClient(cred, "ap-guangzhou",clientProfile);// 实例化一个请求对象,每个接口都会对应一个request对象SendSmsRequest req = new SendSmsRequest();String[] phoneNumberSet = {phoneNumber};req.setPhoneNumberSet(phoneNumberSet);req.setSmsSdkAppId("应用管理中应用列表的sdk。。");req.setSignName("签名管理内容的名字");req.setTemplateId("正文模板id");String[] templateParamSet = {code};req.setTemplateParamSet(templateParamSet);// 返回的resp是一个SendSmsResponse的实例,与请求对象对应SendSmsResponse resp = client.SendSms(req);// 输出json格式的字符串回包System.out.println(SendSmsResponse.toJsonString(resp));//获取发送状态,若成功则返回truefor (SendStatus sendStatus : resp.getSendStatusSet()) {if ("send success".equals(sendStatus.getMessage()) &&"Ok".equals(sendStatus.getCode())){return true;}}} catch (TencentCloudSDKException e) {e.printStackTrace();}//若不成,返回falsereturn false;}
}
6.3创建controller
public class MsmController {@Autowiredprivate MsmService msmService;@Autowiredprivate RedisTemplate<String,String > redisTemplate;@GetMapping("send/{phone}")public R send(@PathVariable String phone){//1.从redis获取验证码,如果获取到直接返回String code=redisTemplate.opsForValue().get(phone);if (!StringUtils.isEmpty(code)){return R.ok();}//若Redis中没有,调用service发送短信方法boolean res = msmService.send(phone);if (res){return R.ok();}else {return R.error().message("短信发送失败");}}
}
6.4service和serviceImpl
public interface MsmService {boolean send( String phone);
}@Service
public class MsmServiceImpl implements MsmService{@AutowiredRedisTemplate<String,String> redisTemplate;/*** 发送短信方法*/@Overridepublic boolean send(String phone) {//生成四位数验证码交腾讯云发送String code = RandomUtil.getFourBitRandom();//发送验证码boolean res = TxCode.SendCode("+86" + phone, code);if (res){//发送成功后将验证码放到Redis中设置存活时间5分钟redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES);return true;}else {throw new GuliException(20001,"验证码发送失败");}}}
6.5调用随机验证码的工具类
public class RandomUtil {private static final Random random = new Random();private static final DecimalFormat fourdf = new DecimalFormat("0000");private static final DecimalFormat sixdf = new DecimalFormat("000000");public static String getFourBitRandom() {return fourdf.format(random.nextInt(10000));}public static String getSixBitRandom() {return sixdf.format(random.nextInt(1000000));}/*** 给定数组,抽取n个数据* @param list* @param n* @return*/public static ArrayList getRandom(List list, int n) {Random random = new Random();HashMap<Object, Object> hashMap = new HashMap<Object, Object>();// 生成随机数字并存入HashMapfor (int i = 0; i < list.size(); i++) {int number = random.nextInt(100) + 1;hashMap.put(number, i);}// 从HashMap导入数组Object[] robjs = hashMap.values().toArray();ArrayList r = new ArrayList();// 遍历数组并打印数据for (int i = 0; i < n; i++) {r.add(list.get((int) robjs[i]));System.out.print(list.get((int) robjs[i]) + "\t");}System.out.print("\n");return r;}
}
6.6最后使用swagger页面测试即可
导入swagger依赖
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger.version}</version></dependency><!--swagger ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger.version}</version></dependency>
@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket webApiConfig(){return new Docket(DocumentationType.SWAGGER_2).groupName("webApi")//swagger右上角的名字.apiInfo(webApiInfo()).select().paths(Predicates.not(PathSelectors.regex("/admin/.*"))).paths(Predicates.not(PathSelectors.regex("/error.*"))).build();}private ApiInfo webApiInfo(){return new ApiInfoBuilder().title("网站-课程中心API文档").description("本文档描述了课程中心微服务接口定义").version("2.0").contact(new Contact("ZUA", "http://zua.edu.cn", "2658098903@qq.com")).build();}
}
在测试之前需要开启Linux上的redis
腾讯云短信申请与使用相关推荐
- Spring Boot腾讯云短信申请
1.在pom.xml文件中添加依赖 <dependency><groupId>com.tencentcloudapi</groupId><artifactId ...
- php 腾讯短信接口api,关于腾讯云短信 API 成功调用的分享
腾讯云短信签名申请我用的个人公众号,很快就过审了,在这把需要注意的跟大家说一下.我发现很多人都没提到重点,复制粘贴党容易踩坑. 签名审核通过后,创建正文模板,如下图: 然后按照书本教程基本操作完成后, ...
- 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)
2021/8/17/23:01{2021/8/17/23:01}2021/8/17/23:01 文章目录 前言 一.如何成功申请到腾讯云短信服务 1.签名申请 2.正文模板申请 二.发送短信API开发 ...
- 短信接口在本地调试正常_Pivotal实践:腾讯云短信小应用
最近登录了一下腾讯云控制台,发现账户下居然每月有100条免费短信可以使用.结合一下最近成都阴晴不定的天气,女友上班老是忘记带伞的现状,于是决定开发一款天气短信提醒小应用,每天早上定时给女友发送天气状况 ...
- java实现短信验证码发送(架子是springboot 服务平台选择腾讯云短信服务)
业务需求:公司扩展新业务,新增短信验证码提醒服务,负责功能模块完善 暂时只研究了腾讯短信服务的发送(看api谁都能copy出来),短信状态回执(也挺简单,只是自己想复杂了),短信回复回执(暂时没弄明白 ...
- 腾讯云短信发送api(SendSms)--java
一.申请腾讯云帐号并开通短信服务(开通短信服务需要手机实名认证) 1.注册或登录地址:登录 - 腾讯云 2.登录后搜索:短信 3.创建签名,注意,这里的签名内容在代码里面要用到.(提交审核两个小时之 ...
- 快速集成腾讯云短信实现短信发送(Spring Boot)
前言 腾讯云活动白嫖 1.地址 地址:https://cloud.tencent.com/act/free?from=14600 2.创建签名(根据实际情况选择) 我的是网站 3.创建模板 选择模板内 ...
- delphi 调用 腾讯云短信
{ 腾讯云短信demo berlin _20190626_012152 作者:高文杰 QQ:46140262 Tel: 13165191728 公司:山东易桥智能科技有限公司 完整源码下载地址 ht ...
- Python使用腾讯云-短信服务发送手机短信
原创不易,欢迎关注我的微信公众号:司马弈 获取更多精选内容. 腾讯云短信服务介绍 目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 ...
- 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...
最新文章
- tensorflow中的tf.summary.image
- Facebook开源ptr:在Python环境中并行运行单元测试
- 读书笔记12:观察者模式
- 3w最简单led灯电路图_行业内幕揭秘:LED灯没有你想的那么简单!
- notepad++ 使用去掉自动检查红线
- 一个列表包揽所有你需要的Windows应用
- python爬取cctalk视频_新媒体编辑怎么批量爬取数据
- VS找不到MFC90d.dll错误
- 图论及其应用(吴望明中文版)
- 【从0开始音乐demo的制作:预计耗时15小时(一)】项目创建和Vue 3.x vue-cli 的选项问题
- 劫持ZwQuerySystemInformation函数实现进程隐藏
- 题源报刊第三季--Lesson 3--Gender equality at work is a matter of respect,not just money
- 论文笔记 Weakly Supervised Deep Detection Networks - CVPR 2016
- 什么是 Linux Mint,它比 Ubuntu 好在哪里?
- OpenCV drawMatches出现报错Error: Assertion failed
- Oracle-07:别名,去重,子查询
- SpringBoot启动图案大全
- 谁的数据在说谎:天翼云71亿、浪潮云估值100亿、金山云亏了27亿?
- 程序员升职记-汇报技巧:金字塔原理、MECE法则
- 十年变形计 百度云领衔年度大戏《我不是云计算》
热门文章
- Mocha Pro 2022 Plugins for mac(达芬奇/Fusion/Nuke/OFX插件)
- Jmeter的基本功能使用方法
- BME280测湿度温度
- oracle group by优化
- 华为推送服务内容,阅读笔记
- Oracle数据访问组件ODAC(Oracle Data Access Components)安装和使用
- 技术分享 | MaxScale 实现 MySQL读写分离
- Quartz定时任务框架(一)
- 天线巴伦制作和原理_一种2.4GHz巴伦天线的制作方法
- ArcCatalog导出数据库中shapefile