自定义一个腾讯云短信验证码接口spring-starter
1. 首先注册一个腾讯云的短信服务
在腾讯云官网搜索短信即可直接开通,第一次开通有100条国内免费短信
然后在控制台快速入门设置短信签名和模板,审核通过就可以用了(审核很快,我的几分钟就ok了)
申请签名需要上传资料,签名类型处,如果没有自己的网站或者app,可以申请一个自己的公众号(公众号申请也相当简单),上传公众号后台设置截图即可
接着在应用管理里创建一个专用的应用,也可以使用默认的应用,这里的SmsSdkAppId,后面调用短信服务api时要用
2.在腾讯云访问管理设置一个用户组和用户
先建一个用户组,将短信api权限添加进去,也可以添加其他的功能
然后新建一个用户或者用主账户加入到用户组中,完成后,保存密钥id和key,后面会用到
3.开始自定义我们的starter
首先创建一个空的maven项目sms-spring-boot-starter作为starter启动器,里面不需要写代码
然后创建一个springbooot项目sms-spring-boot-starter-autoconfigure配置starter
在sms-spring-boot-starter里把sms-spring-boot-starter-autoconfigure引入进来
<dependency>
<groupId>com.fzh</groupId>
<artifactId>sms-spring-boot-starter-autoconfigure</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
然后开始在sms-spring-boot-starter-autoconfigure里实现短信发送功能
首先引入腾讯云最新的依赖
<!-- 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>
根据官方api文档实现方法
public class SendSms {
@Autowired
private SmsConfigProperties smsConfigProperties;
public SendSmsResponse SendSmsClient(String phoneNumber, String TemplateParam) {
// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
Credential cred = new Credential(smsConfigProperties.getSecretId(),
sm