准备工作
访问腾讯云官网
https://cloud.tencent.com/
注册登录
在产品中搜索短信,如图:
进入下面页面
第一次使用是要进行实名认证的。按照要求自己去认证即可
个人首次卡开通有100条免费的
创建签名
点击创建签名,自己完成创建
创建完成之后,下面出现内容和id和审核状态,签名需要审核,等待审核完成。
创建正文模板
不能有违法的字样
创建完成后也需要审核
应用信息
准备工作完成了
java代码
创建java的springboot项目。
添加依赖
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
编写代码
代码链接https://gitee.com/cao_wen_bin/tencent_sms/tree/master
代码结构如下:
package com.cao.entity;
import lombok.Data;
/**
* @author caowenbin
* @Title: Sms
* @Package com.cao.entity
* @Description: 针对短信验证码建实体类
* @date 2023/3/18 23:50
*/
@Data
public class Sms {
//接收的电话号码
private String phone;
}
package com.cao.controller;
import com.cao.entity.Sms;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
/**
* @author caowenbin
* @Title: SmsController
* @Package com.cao.controller
* @Description: 发送短信验证码
* @date 2023/3/18 23:55
*/
@RestController
@RequestMapping("/sms")
public class SmsController {
/**
* @Description: 用于发送的函数
* @Author: ccc-caowenbin
* @Date: 2023/3/19
*/
@RequestMapping(value = "/sendCode", method = RequestMethod.POST)
public void sms(@RequestBody Sms sms) {
int appId = 1400803607;//自己的SDK AppID
String appKey = "532548fbcd6bdda17d38e082abb31f58fa";//自己的App Key
int templateId = 1735284;// 模板id
String smsSign = "子沫2023公众号";//签名内容
int code = (int) ((Math.random() * 9 + 1) * 1000);//随机数生成四位数的验证码
int time = 5; //失效时间(分钟)
String[] params = {Integer.toString(code), Integer.toString(time)};
SmsSingleSender smsSingleSender = new SmsSingleSender(appId, appKey);
try {
SmsSingleSenderResult result = smsSingleSender.sendWithParam("86", sms.getPhone(), templateId, params, smsSign, "", "");
System.out.println(result);
} catch (HTTPException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
启动项目,用postman测试
收到验证码了
测试完成。