官方文档地址 :https://cloud.tencent.com/document/product/382/43194
一、环境准备
1.进入腾讯云短信控制台
https://console.cloud.tencent.com/smsv2/enterprise
2. 创建实名资质管理
3.创建签名
4.创建正文模板
5.创建应用
二、代码编写
1.Maven 导入SDK
bash
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.1112</version>
</dependency>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-common</artifactId>
<version>3.1.1112</version>
</dependency>
2.编写短信发送配置方法
java
/**
* 配置短信服务客户端
*
* @param secretId 腾讯云账号的SecretId,用于身份认证
* @param secretKey 腾讯云账号的SecretKey,用于签名和身份验证
* @return 返回配置好的短信服务客户端实例
*
* 本方法用于根据提供的腾讯云账号密钥(SecretId和SecretKey)初始化并配置短信服务(SMS)客户端
* 客户端用于后续发送短信消息通过腾讯云的SMS服务
*/
private SmsClient messageConfig(String secretId, String secretKey) {
// SecretId、SecretKey 查询: https://console.cloud.tencent.com/cam/capi
Credential cred = new Credential(secretId, secretKey);
// 设置HTTP配置文件,包括请求方法、连接超时、读取超时等
HttpProfile httpProfile = new HttpProfile();
httpProfile.setReqMethod("GET");
httpProfile.setConnTimeout(10);
httpProfile.setWriteTimeout(10);
httpProfile.setReadTimeout(10);
httpProfile.setEndpoint("sms.tencentcloudapi.com");
// 设置客户端配置文件,包括签名方法和HTTP配置
ClientProfile clientProfile = new ClientProfile();
clientProfile.setSignMethod("HmacSHA256");
clientProfile.setHttpProfile(httpProfile);
// 使用凭证、区域和客户端配置创建短信服务客户端实例
SmsClient client = new SmsClient(cred, "ap-nanjing",clientProfile);
return client;
}
3.封装发送短信方法
java
/**
* 发送短信
*
* @param phones 手机号码数组,采用 E.164 标准,格式为 +[国家或地区码][手机号]
* @param templateData 模板参数数组,需要与模板 ID 对应的变量个数保持一致
* @return 返回 true 表示发送成功,否则发送失败
*/
public Boolean sendMessage(String[] phones,String[] templateData) {
// 配置 SMS 客户端
SmsClient smsClient = messageConfig(secretId, secretKey);
SendSmsRequest req = new SendSmsRequest();
// 设置应用 ID
req.setSmsSdkAppId(sdkAppId);
// 设置签名信息
req.setSignName(signName);
// 设置模板 ID
req.setTemplateId(templateId);
// 设置模板参数
req.setTemplateParamSet(templateData);
// 设置下发手机号码
req.setPhoneNumberSet(phones);
String code = "";
try {
// 发送短信并获取响应
SendSmsResponse res = smsClient.SendSms(req);
// 将响应结果转换为 JSON 字符串
String jsonString = SendSmsResponse.toJsonString(res);
// 解析 JSON 字符串
JSONObject jsonObject = JSONObject.parseObject(jsonString);
// 获取发送状态集合
JSONArray sendStatusSet = jsonObject.getJSONArray("SendStatusSet");
// 获取第一个发送状态对象
JSONObject jsonObject1 = sendStatusSet.getJSONObject(0);
// 获取发送状态码
code = jsonObject1.getString("Code");
} catch (TencentCloudSDKException e) {
// 如果发生异常,抛出自定义异常
throw new RuntimeException(e);
}
// 判断发送状态码是否为"Ok",表示发送成功
if (code.equals("Ok") ){
return true;
}else {
return false;
}
}
然后只要调用发送短信的方法,传入号码数组和模板id就行了
感谢阅读,关注必回关!!!