目录

一、申请微信公众号

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

腾讯云短信申请与使用相关推荐

  1. Spring Boot腾讯云短信申请

    1.在pom.xml文件中添加依赖 <dependency><groupId>com.tencentcloudapi</groupId><artifactId ...

  2. php 腾讯短信接口api,关于腾讯云短信 API 成功调用的分享

    腾讯云短信签名申请我用的个人公众号,很快就过审了,在这把需要注意的跟大家说一下.我发现很多人都没提到重点,复制粘贴党容易踩坑. 签名审核通过后,创建正文模板,如下图: 然后按照书本教程基本操作完成后, ...

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

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

  4. 短信接口在本地调试正常_Pivotal实践:腾讯云短信小应用

    最近登录了一下腾讯云控制台,发现账户下居然每月有100条免费短信可以使用.结合一下最近成都阴晴不定的天气,女友上班老是忘记带伞的现状,于是决定开发一款天气短信提醒小应用,每天早上定时给女友发送天气状况 ...

  5. java实现短信验证码发送(架子是springboot 服务平台选择腾讯云短信服务)

    业务需求:公司扩展新业务,新增短信验证码提醒服务,负责功能模块完善 暂时只研究了腾讯短信服务的发送(看api谁都能copy出来),短信状态回执(也挺简单,只是自己想复杂了),短信回复回执(暂时没弄明白 ...

  6. 腾讯云短信发送api(SendSms)--java

    一.申请腾讯云帐号并开通短信服务(开通短信服务需要手机实名认证) 1.注册或登录地址:登录 - 腾讯云 2.登录后搜索:短信  3.创建签名,注意,这里的签名内容在代码里面要用到.(提交审核两个小时之 ...

  7. 快速集成腾讯云短信实现短信发送(Spring Boot)

    前言 腾讯云活动白嫖 1.地址 地址:https://cloud.tencent.com/act/free?from=14600 2.创建签名(根据实际情况选择) 我的是网站 3.创建模板 选择模板内 ...

  8. delphi 调用 腾讯云短信

    { 腾讯云短信demo berlin _20190626_012152 作者:高文杰 QQ:46140262 Tel: 13165191728 公司:山东易桥智能科技有限公司 完整源码下载地址  ht ...

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

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

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

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

最新文章

  1. tensorflow中的tf.summary.image
  2. Facebook开源ptr:在Python环境中并行运行单元测试
  3. 读书笔记12:观察者模式
  4. 3w最简单led灯电路图_行业内幕揭秘:LED灯没有你想的那么简单!
  5. notepad++ 使用去掉自动检查红线
  6. 一个列表包揽所有你需要的Windows应用
  7. python爬取cctalk视频_新媒体编辑怎么批量爬取数据
  8. VS找不到MFC90d.dll错误
  9. 图论及其应用(吴望明中文版)
  10. 【从0开始音乐demo的制作:预计耗时15小时(一)】项目创建和Vue 3.x vue-cli 的选项问题
  11. 劫持ZwQuerySystemInformation函数实现进程隐藏
  12. 题源报刊第三季--Lesson 3--Gender equality at work is a matter of respect,not just money
  13. 论文笔记 Weakly Supervised Deep Detection Networks - CVPR 2016
  14. 什么是 Linux Mint,它比 Ubuntu 好在哪里?
  15. OpenCV drawMatches出现报错Error: Assertion failed
  16. Oracle-07:别名,去重,子查询
  17. SpringBoot启动图案大全
  18. 谁的数据在说谎:天翼云71亿、浪潮云估值100亿、金山云亏了27亿?
  19. 程序员升职记-汇报技巧:金字塔原理、MECE法则
  20. 十年变形计 百度云领衔年度大戏《我不是云计算》

热门文章

  1. Mocha Pro 2022 Plugins for mac(达芬奇/Fusion/Nuke/OFX插件)
  2. Jmeter的基本功能使用方法
  3. BME280测湿度温度
  4. oracle group by优化
  5. 华为推送服务内容,阅读笔记
  6. Oracle数据访问组件ODAC(Oracle Data Access Components)安装和使用
  7. 技术分享 | MaxScale 实现 MySQL读写分离
  8. Quartz定时任务框架(一)
  9. 天线巴伦制作和原理_一种2.4GHz巴伦天线的制作方法
  10. ArcCatalog导出数据库中shapefile