一,老版的手机短信验证:
- 依赖包:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.0</version>
</dependency>
- 实现代码:
@Value("${aliyun.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.accessKeySecret}")
private String accessKeySecret;
@Value("${aliyun.signName}")
private String signName;
@Value("${aliyun.templateCode}")
private String templateCode;
/**
* 手机短信验证
* @param phone
* @param codeMap
* @return
*/
@Override
public boolean phoneNote(String phone, Map<String, String> codeMap) {
if (StrUtil.isBlank(phone)){
return false;
}
//-------------------------阿里云-短信验证代码------------------
//基本参数
DefaultProfile profile =
DefaultProfile.getProfile("default", accessKeyId, accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
//设置相关固定的参数
CommonRequest request = new CommonRequest();
//request.setProtocol(ProtocolType.HTTPS);
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");//版本号-不要改
request.setAction("SendSms");
//设置发送相关的参数
request.putQueryParameter("PhoneNumbers",phone); //手机号
request.putQueryParameter("SignName",signName); //申请阿里云 签名名称
request.putQueryParameter("TemplateCode",templateCode); //申请阿里云 模板code
request.putQueryParameter("TemplateParam", JSONUtil.toJsonStr(codeMap)); //验证码数据,转换json数据传递
//最终发送
try {
CommonResponse response = client.getCommonResponse(request);
boolean success = response.getHttpResponse().isSuccess();
log.warn("短信验证结果1="+success);
return true; //成功
} catch (ClientException e) {
e.printStackTrace();
return false;//失败
}
}
二,新版的手机短信验证:
- 依赖包:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.24</version>
</dependency>
- 代码:
/**
* 手机短信验证
* @param phone
* @param codeMap
* @return
*/
@Override
public boolean phoneNoteNew(String phone, Map<String, String> codeMap) throws Exception {
//-------------------------阿里云-短信验证代码------------------
Client client =client(accessKeyId,accessKeySecret);
SendSmsRequest sendSmsRequest = new SendSmsRequest()
.setSignName(signName)
.setTemplateCode(templateCode)
.setPhoneNumbers(phone)
.setTemplateParam(JSONUtil.toJsonStr(codeMap));
RuntimeOptions runtime = new RuntimeOptions();
try {
SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);
log.warn("短信验证结果=="+resp.getStatusCode());
log.warn("短信验证结果22=="+resp.getBody().getMessage());
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private Client client(String setAccessKeyId, String setAccessKeySecret) throws Exception {
Config config = new Config()
// 必填,您的 AccessKey ID
.setAccessKeyId(setAccessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(setAccessKeySecret);
// Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
config.endpoint = "dysmsapi.aliyuncs.com";
return new Client(config);
}
关注,收藏,点赞,有问题可以私信“门主” :v:z13135361785