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

您所在的位置:网站首页 腾讯短信号码 使用腾讯云短信服务实现Spring Boot短信发送

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

2023-06-03 05:51| 来源: 网络整理| 查看: 265

发送短信 01 注册微信公众号02 注册腾讯云账号03 创建签名和模板第一步 创建签名第二部 创建模板 04 发送短信

01 注册微信公众号

在百度中寻找微信公众平台,并在进入官网后注册。在账号注册过程中,需选择订阅号(个人)。注册成功后,请保存账号详情的截图,以备后续腾讯云短信签名申请之用。

02 注册腾讯云账号

你可以按照以下步骤登录并注册腾讯云,并进行个人实名认证:

打开腾讯云官网(腾讯云官网 ),点击右上角的“注册”按钮。

在注册页面中,填写邮箱、密码要什么就填什么

点击“注册”按钮后,进入填写个人信息的页面。

填写完毕后,会进入腾讯云的控制台页面。在这里可以购买云产品、管理云服务等。

为了完成个人实名认证流程,需要先进行手机验证。在控制台页面左侧的菜单中选择“账号中心”,然后点击“安全设置”-“手机验证”进行验证。

接下来,在账号中心页面的实名认证栏目中点击“去认证”按钮。

选择个人认证方式,并填写真实姓名、身份证号码等信息。上传身份证正反面照片,然后点击“提交”按钮。

完成实名认证后,等待审核通过即可。

以上就是登录腾讯云并完成个人实名认证流程的所有步骤。

当你通过审核后,请打开 腾讯云短信服务 ,在该页面上,你会看到免费试用的选项。请点击进入。

在这里插入图片描述

03 创建签名和模板 第一步 创建签名

按要求填写即可

签名内容:你的微信公众号名字+公众号。例如:xxx公众号。经办人:你自己。申请说明:填写你的公众号全名。

在这里插入图片描述

第二部 创建模板 模板名称:没有特别的要求,可以自由填写短信类型:普通短信短信内容:标准模板或者自己编写申请说明:短信模板的场景

例如,申请的短信模板为:

亲爱的{1}小朋友,祝你童节快乐!愿你们拥有纯真的笑容和快乐的时光。希望你在成长的路上,始终保持好奇心和勇气,用积极的态度面对一切挑战。祝你健康快乐,未来可期!

申请说明内容可以为:

这个短信模板用于向儿童节受众发送祝福信息,以表达节日的祝福和推崇儿童在成长中保持快乐、积极、勇敢等正向品质的意向。该短信模板为发送对象为儿童节受众而准备

在这里插入图片描述

04 发送短信

以下是使用Spring Boot和腾讯云短信服务SDK实现发送短信的详细步骤

这里是我所使用的正文模板

在这里插入图片描述

在项目的 maven pom.xml 文件中,添加以下依赖: com.tencentcloudapi tencentcloud-sdk-java-sms 3.1.767 在 Spring Boot 的 application.properties 或 application.yaml 中,添加腾讯云的 API 密钥和短信模板信息: tencent: sms: # 腾讯云账户 secrtId,secretKey secretId: A*IDR1Vmob9*TKvlNjqhIdjZ9U**Np1yf8LJ keysecret: lHXX*n23pLb**tACzWnpb7NN7c*qZ2GF # 短信应用ID:短信SdkAppId在 【短信控制台】添加应用后生成实际的SdkAppId smsSdkAppId: 1400800002 # 短信签名内容: signName: 编程日记公众号 # 模板ID:必须是已经审核通过的模板ID templateId: 1817797

在这里插入图片描述

3.编写工具类

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 org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import java.util.Random; @Component public class MsmConstantUtils implements InitializingBean { /** 腾讯云账户密钥对secretKey(在访问管理中配置) */ @Value("${tencent.sms.secretId}") private String secretID ; /** 腾讯云账户密钥对secretKey(在访问管理中配置) */ @Value("${tencent.sms.keysecret}") private String secretKey ; @Value("${tencent.sms.smsSdkAppId}") private String smsSdkAppID ; @Value("${tencent.sms.signName}") private String signName ; @Value("${tencent.sms.templateId}") private String templateID ; public static String SECRET_ID; public static String SECRET_KEY; public static String SMSSDKAPP_ID; public static String SIGN_NAME; public static String TEMPLATE_ID; @Override public void afterPropertiesSet() throws Exception { SECRET_ID = secretID; SECRET_KEY = secretKey; SMSSDKAPP_ID = smsSdkAppID; SIGN_NAME = signName; TEMPLATE_ID = templateID; } /** * 发送6位数字验证码到手机 * @param sixBitRandom 验证码 * @param phone 手机号 * @return */ public static boolean sendPhone(String sixBitRandom, String phone) { //判断手机号是否为空 if (StringUtils.isEmpty(phone)) { return false; } try{ // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密 // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取 Credential cred = new Credential(MsmConstantUtils.SECRET_ID, MsmConstantUtils.SECRET_KEY); // 实例化一个http选项,可选的,没有特殊需求可以跳过 HttpProfile httpProfile = new HttpProfile(); httpProfile.setEndpoint("sms.tencentcloudapi.com"); // 实例化一个client选项,可选的,没有特殊需求可以跳过 ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); // 实例化要请求产品的client对象,clientProfile是可选的 第二个参数是地域信息 SmsClient client = new SmsClient(cred, "ap-nanjing", clientProfile); // 实例化一个请求对象,每个接口都会对应一个request对象 SendSmsRequest req = new SendSmsRequest(); //设置发送相关的参数 String[] phoneNumberSet1 = {"86"+phone}; req.setPhoneNumberSet(phoneNumberSet1);//发送的手机号 //设置固定的参数 req.setSmsSdkAppid(MsmConstantUtils.SMSSDKAPP_ID);// 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId req.setSign(MsmConstantUtils.SIGN_NAME);//短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名 req.setTemplateID(MsmConstantUtils.TEMPLATE_ID);//模板 ID: 必须填写已审核通过的模板 ID //发送的验证码 String[] templateParamSet1 = {sixBitRandom};//模板的参数 第一个是验证码,第二个是过期时间 req.setTemplateParamSet(templateParamSet1);//发送验证码 //发送短信 // 返回的resp是一个SendSmsResponse的实例,与请求对象对应 SendSmsResponse resp = client.SendSms(req); System.out.println("resp"+resp); // 输出json格式的字符串回包 System.out.println(SendSmsResponse.toJsonString(resp)); return true; } catch (TencentCloudSDKException e) { e.printStackTrace(); return false; } } /** * 随机生成验证码 * @param length 长度为4位或者6位 * @return */ public static String generateValidateCode(int length){ Integer code =null; if(length == 4){ code = new Random().nextInt(9999);//生成随机数,最大为9999 if(code code = new Random().nextInt(999999);//生成随机数,最大为999999 if(code throw new RuntimeException("只能生成4位或6位数字验证码"); } return code.toString(); } } 在发送短信的控制器类中,使用 MsmConstantUtils类的sendPhone方法发送短信: @RestController @RequestMapping("/tencent") public class tencentSmsController { @GetMapping("/test") public String test(String phone){ boolean b = MsmConstantUtils.sendPhone(MsmConstantUtils.generateValidateCode(6), phone); return b ? "success":"fail"; } }

以上就是使用 Spring Boot 和腾讯云短信服务 SDK发送短信的详细步骤,希望对你有帮助!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3