一,老版的手机短信验证:
-
依赖包:
<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