一、生成签名(提前注册号腾讯元的账号)
登录地址:总览 – 控制台 – 腾讯云 (tencent.com)
1、短信页面
2、创建签名
根据自己的需求去创建,可以是小程序、网站、微信公众号,按要求填写下面的信息等申请通过即可
二、领取短信次数
腾讯云是可以免费领取 100 次的发送次数的
在官网找到这个页面申请既可以了,不用钱的哈,免费的,使用期限是3个月100次。
领取成功,我之前测试用了4条了
三、查看
1、查看签名
如果申请通过的话,会有显示已生效的这里的 ID 和 签名内容我们后面都要用到
2、查看模板
首先申请一个短信模板,我这里已验证码的格式为主。剩下的内容就按照要求去填写,同样也是需要通过审批才可以使用。
查看模板
审批通过会显示已通过,模板中的 ID 和 内容是我们需要操作的
3、查看应用信息
SDK App ID 和 App Key 也是需要使用到的
4、查看密钥
在访问管理中,有密钥管理,后面也要用到
四、代码实现
1、pom.xml 导入依赖
<!-- 发送短信的依赖 === 腾讯云 --> <!-- https://mvnrepository.com/artifact/com.tencentcloudapi/tencentcloud-sdk-java --> <dependency> <groupId>com.tencentcloudapi</groupId> <artifactId>tencentcloud-sdk-java</artifactId> <version>4.0.11</version> </dependency>
2、代码
1、生成四位随机数的工具类 — 随机生成四位验证码
public static String keyUtils() { // 定义一个包含数字 0 到 9 的字符串 String str = "0123456789"; // 创建一个空的 StringBuilder 对象,用于存储生成的随机数 -- 4位 StringBuilder st = new StringBuilder(4); // 使用 for 循环4次 for (int i = 0; i < 4; i++) { // 在 str 字符串中随机选择一个字符,并添加到 stringBuilder 对象中 char ch = str.charAt(new Random().nextInt(str.length())); st.append(ch); } // 将 stringBuilder 对象转化为字符串,并转化为小写字母 String findkey = st.toString().toLowerCase(); // 返回生成的随机数 return findkey; }
2、发送短信的代码
代码中空的设置值,已经在上标题中带大家找过了,复制进去就可以使用了
try { // 创建 COSCredentials 对象,传入 SecretId 和 SecretKey --- 密钥 Credential cred = new Credential("SecretId ", "SecretKey "); HttpProfile httpProfile = new HttpProfile(); // 设置腾讯云服务 API 的访问域名 httpProfile.setEndpoint("sms.tencentcloudapi.com"); ClientProfile clientProfile = new ClientProfile(); // 设置 HTTP 的请求配置信息 clientProfile.setHttpProfile(httpProfile); // 指定 SMS 所在的区域 SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile); SendSmsRequest req = new SendSmsRequest(); // 接收短信的手机号码,可以设置多个 String[] phoneNumberSet1 = {"+8615300001866"}; req.setPhoneNumberSet(phoneNumberSet1); // 设置正文模板 ID req.setTemplateID(""); // 设置短信应用 ID req.setSmsSdkAppid(""); // 设置签名内容 req.setSign(""); // 调用生成验证码的工具类 FourKeyUtil fourKeyUtil = new FourKeyUtil(); String s = fourKeyUtil.keyUtils(); // 短信模板中的参数,需与短信模板中的参数个数一致 String[] templateParams = {s}; req.setTemplateParamSet(templateParams); // 发送短信 SendSmsResponse resp = client.SendSms(req); System.out.println(SendSmsResponse.toJsonString(resp)); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); }
3、运行
运行只要看到 ok 和 success 就表示成功了
效果图
到这里Java + 腾讯云发送短信就已经完成了,后期会结合web项目一起使用,实现注册手机短信验证注册功能。
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/31655