//需要的百度依赖
<!--百度sms-->
<dependency>
<groupId>com.baidubce</groupId>
<artifactId>bce-java-sdk</artifactId>
<version>0.10.119</version>
</dependency>
#发送短信代码
@GetMapping("/ailicode/{phone}")
public String ailicode(@PathVariable("phone") String phone) {
int i = (int) ((Math.random() * 9 + 1) * Math.pow(10, 5));//6位验证码
//先从redis获取该手机号短信是否过期
Integer code = redisCache.getCacheObject(Constants.PYXD_SMS + phone);
if (code != null) {
return phone + ":" + code + "验证码已发送!";
}
//自己百度的密钥
String ACCESS_KEY_ID = clientIdKey;
String SECRET_ACCESS_KEY = clientSecretKey;
String ENDPOINT = "http://smsv3.bj.baidubce.com";
SmsClientConfiguration config = new SmsClientConfiguration();
config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));
config.setEndpoint(ENDPOINT);
SmsClient client = new SmsClient(config);
SendMessageV3Request request = new SendMessageV3Request();
request.setMobile(phone);
//这里模板填写自己的
request.setSignatureId("sms-sign-******");
request.setTemplate("sms-tmpl-AP*****");
Map<String, String> contentVar = new HashMap<>();
contentVar.put("code", String.valueOf(i));
contentVar.put("time", "5");
request.setContentVar(contentVar);
SendMessageV3Response response = client.sendMessage(request);
// 解析请求响应 response.isSuccess()为true 表示成功
if (response != null && response.isSuccess()) {
//发送成功存入redis
redisCache.setCacheObject(Constants.PYXD_SMS + phone, i, 5, TimeUnit.MINUTES);
return "发送成功";
} else {
return "发送失败";
}
}