先去官网申请secretId, secretKey,然后创建对应的模板

maven引入包

<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
<!-- 请到https://search.maven.org/search?q=tencentcloud-sdk-java查询所有版本,最新版本如下 -->
<version>3.1.836</version>
</dependency>

工具类

package com.hwd.campus.security.biz.utils;

import com.alibaba.fastjson.JSON;
import com.hwd.campus.common.common.api.ResultCode;
import com.hwd.campus.common.common.exception.BusinessException;
import com.tencentcloudapi.common.AbstractModel;
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.v20190711.SmsClient;
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
import lombok.extern.slf4j.Slf4j; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; @Slf4j
public class SmsUtil { private static final String SMS_SDK_APP_ID = ""; /**
* 发送手机短信验证码
* <p>
* 您的动态验证码为:{1},此验证码{2}秒内有效,如非本人操作,请忽略本短信!
*
* @param phone 手机号
* @param verifyCode 验证码
* @param validTime 有效时间
*/
public static void sendPhoneVerifyCodeSecond(String phone, String verifyCode, long validTime) {
List<String> templateParamSet = new ArrayList<>();
templateParamSet.add(verifyCode);
templateParamSet.add(String.valueOf(validTime));
sendMsg(smsModel(phone, "", templateParamSet));
} /**
* 短信发送提醒
*
* @param phone 手机号
* @param templateParam 参数
* @param templateId 模板Id
* @date 2023-08-23
* @author hhs
*/
public static void sendSmsRemind(String phone, List<String> templateParam, String templateId) {
sendMsg(smsModel(phone, templateId, templateParam));
} /**
* 发送手机短信验证码
* <p>
* <p>
* 您的动态验证码为:{1},此验证码{2}分钟内有效,如非本人操作,请忽略本短信!
*
* @param phone 手机号
* @param verifyCode 验证码
* @param validTime 校验内容
*/
public static void sendPhoneVerifyCodeMinute(String phone, String verifyCode, long validTime) {
List<String> templateParamSet = new ArrayList<>();
templateParamSet.add(verifyCode);
templateParamSet.add(String.valueOf(validTime));
sendMsg(smsModel(phone, "", templateParamSet));
} private static SmsModel smsModel(String phone, String templateId, List<String> templateParamSet) {
return SmsModel.builder().PhoneNumberSet(Collections.singletonList("+86" + phone))
.TemplateID(templateId).Sign("标头").TemplateParamSet(templateParamSet)
.SmsSdkAppid(SMS_SDK_APP_ID).build();
} /**
* 发送短信
*
* @param model 模型
*/
private static void sendMsg(SmsModel model) {
try {
log.info("发送短信:" + model);
Credential cred = new Credential("secretId", "secretKey");
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("sms.tencentcloudapi.com");
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
SmsClient client = new SmsClient(cred, "", clientProfile);
//转换为String
String params = JSON.toJSONString(model);
SendSmsRequest req = AbstractModel.fromJsonString(params, SendSmsRequest.class);
SendSmsResponse resp = client.SendSms(req);
log.info("短信发送成功:" + AbstractModel.toJsonString(resp));
} catch (TencentCloudSDKException e) {
log.error("=========短信发送失败========" + e.getMessage());
throw new BusinessException(ResultCode.OPERATION_FAILURE, "=========短信发送失败========" + e.getMessage());
}
} public static void main(String[] args) {
//13512765559
sendPhoneVerifyCodeSecond("phone", "验证码", 1);
}
}

实体参数

package com.hwd.campus.security.biz.utils;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Builder;
import lombok.Data; import java.util.List; @Builder
@Data
public class SmsModel { /**
* 模板 ID,必须填写已审核通过的模板 ID。
* 模板ID可登录 [短信控制台](<a href="https://console.cloud.tencent.com/smsv2">...</a>) 查看,若向境外手机号发送短信,仅支持使用国际/港澳台短信模板。
*/
@JSONField(name = "TemplateID")
private String TemplateID;
/**
* 短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名,
* 签名信息可登录 [短信控制台](<a href="https://console.cloud.tencent.com/smsv2">...</a>) 查看。注:国内短信为必填参数。
*/
@JSONField(name = "Sign")
private String Sign;
/**
* 短信SdkAppid在 [短信控制台](<a href="https://console.cloud.tencent.com/smsv2">...</a>) 添加应用后生成的实际SdkAppid,示例如1400006666。
*/
@JSONField(name = "SmsSdkAppid")
private String SmsSdkAppid;
/**
* 下发手机号码,采用 e.164 标准,格式为+[国家或地区码][手机号],单次请求最多支持200个手机号且要求全为境内手机号或全为境外手机号。
* 例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号。
*/
@JSONField(name = "PhoneNumberSet")
private List<String> PhoneNumberSet;
/**
* 模板参数,若无模板参数,则设置为空。
*/
@JSONField(name = "TemplateParamSet")
private List<String> TemplateParamSet;
}

腾讯云短信发送【java】的更多相关文章

  1. laravel 腾讯云短信发送

    public function tecentSms(Request $request) { $phone = $request->input("hiphone"); $app ...

  2. Java调用腾讯云短信接口,完成验证码的发送(不成功你来砍我!!)

    一.前言 我们在一些网站注册页面,经常会见到手机验证码的存在,这些验证码一般的小公司都是去买一些大的厂家的短信服务,自己开发对小公司的成本花费太大了!今天小编就带着大家来学习一下腾讯云的短信接口,体验 ...

  3. 轻松集成腾讯云短信服务实现短信发送(Java实现)

    不论是阿里云还是腾讯云,要想在网站上实现短信发送功能,首先得保证你的网站域名是通过备案的,因为短信签名是需要用到备案过的域名截图,所以域名通过了,申请很快就会审批成功了. (说点题外话,备案的话,需要 ...

  4. java实现发短信功能---腾讯云短信

    目录 java实现发短信功能 前言 开发环境 腾讯云 ---短信 代码 效果 结束语 java实现发短信功能 前言 如今发短信功能已经成为互联网公司的标配,本篇文章将一步步实现java发送短信 考察了 ...

  5. Python 腾讯云短信,发送手机验证码

    1.安装包 pip install qcloudsms_py 2.准备好相关参数 腾讯云短信每个月赠送100条短信,申请一个应用,获取appid,然后创建短信签名,然后创建正文模版 3.发送短信 我们 ...

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

    目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 国内短信支持操作: • 指定模板单发短信 • 指定模板群发短信 • 拉取短信回执 ...

  7. 为开源项目贡献代码-pycharm使用git-登录注册功能分析-判断手机号存在接口-多种方式登录接口-腾讯云短信申请

    目录 为开源项目贡献代码-pycharm使用git-登录注册功能分析-判断手机号存在接口-多种方式登录接口-腾讯云短信申请 git内容大回顾 今日内容概要 今日内容详细 1 为开源项目贡献代码 2 p ...

  8. php腾讯云短信验证码

    腾讯云短信控制台:https://console.cloud.tencent.com/sms 腾讯云短信 PHP SDK:https://github.com/qcloudsms/qcloudsms_ ...

  9. 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习

    反射实现Model修改前后的内容对比   在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...

  10. 基于tp3.2的腾讯云短信验证码的实现

    新手小白在公司要完成短信验证码注册功能,最初由于没有经验,网上的教程又不是很全,便参考着官方API文档,进行开发 直接进入正题:使用composer下载腾讯云短信接口(记得添加依赖).在项目目录下新建 ...

随机推荐

  1. macOS安装软件过程中常见几种报错的解决办法

    对于刚使用 macOS 或者在更新系统后尝试运行应用时遇到问题的用户,可能会看到以下几种错误提示: xxx已损坏,无法打开,你应该将它移到废纸篓 打不开 xxx,因为它来自身份不明的开发者 打不开xx ...

  2. 我来告诉你怎么在macOS上畅玩金铲铲之战

    天选福星,灵蛇献瑞,<金铲铲之战>"天选福星"赛季好运上线!请接收这份来自<金铲铲之战>的新春邀约--"天选福星"正式回归,羁绊焕新升级 ...

  3. 深入剖析Vue框架:从基础到未来趋势

    深入剖析Vue框架:从基础到未来趋势 Vue 框架简介 Vue.js 是一款用于构建用户界面的 JavaScript 框架 ,它基于标准 HTML.CSS 和 JavaScript 构建,并提供了一套 ...

  4. MacOS15+Xcode版本16+对ReactNative项目进行编译和上传到APPStore的踩坑记录

    作者:Kovli 重要通知:红宝书第5版2024年12月1日出炉了,感兴趣的可以去看看,https://u.jd.com/saQw1vP 红宝书第五版中文版 红宝书第五版英文原版pdf下载(访问密码: ...

  5. WPF DataTemplate DataContext 绑定问题

    当使用DataTemplate时,需要用数据绑定,设置数据绑定的方式可参考: https://supportcenter.devexpress.com/ticket/details/t736087/d ...

  6. Halcon学习教程(一) 之提取十字线中心 图像分割

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/17266405.html 废话不多说,因为毕业后工作原因比较忙,好久没更新博客了,直接上图... ...

  7. 腾讯解禁 QQ 极速版,且看我收集的最全 QQ 各类版本

    因为利益关系,腾讯早就限制QQ极速版的登录了,近日居然解除限制了,面对越来越臃肿的QQ,我给大伙准备了几十个版本的QQ,总有一个适合你. QQ版本合集 给大伙们收集了QQ版本合集,分别有历史版本.精简 ...

  8. Flink学习(三) 批流版本的wordcount Scala版本

    批处理代码: package com.wyh.wc import org.apache.flink.api.scala._ /** * 批处理代码 */ object WordCount { def ...

  9. SM系列国密算法

    其中SM1.SM4.SM7.祖冲之密码(ZUC)是对称算法:SM2.SM9是非对称算法:SM3是哈希算法.目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现. 一.SM1 ...

  10. C# Semaphore

    1.Semaphore定义Semaphore,是负责协调各个线程, 以保证它们能够正确.合理的使用公共资源.也是操作系统中用于控制进程同步互斥的量. Semaphore常用的方法有两个WaitOne( ...