天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/
- <dependency>
- <groupId>com.aliyun</groupId>
- <artifactId>aliyun-java-sdk-core</artifactId>
- <version>4.5.0</version>
- </dependency>
- <dependency>
- <groupId>com.aliyun</groupId>
- <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
- <version>1.0.0</version>
- </dependency>
- aliyun:
- sms: #阿里云发短信
- access-key-id: "********" #角色的id
- access-key-secret: "******" #角色的密匙
- sign-name: "天梦星科技"
- template-code: "*******"
- @Component
- public class SmsUtil {
-
- @Value("${aliyun.sms.access-key-id}")
- private String accessKeyId;
-
- @Value("${aliyun.sms.access-key-secret}")
- private String accessKeySecret;
-
- @Value("${aliyun.sms.sign-name}")
- private String signName;
-
- @Value("${aliyun.sms.template-code}")
- private String templateCode;
-
- public Result sendSms(String phone, String code) throws ClientException {
- Result result = new Result();
- IAcsClient client = new DefaultAcsClient(DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret));
- CommonRequest request = new CommonRequest();
- request.setSysMethod(MethodType.POST);
- request.setSysDomain("dysmsapi.aliyuncs.com");
- request.setSysVersion("2017-05-25");
- request.setSysAction("SendSms");
- request.putQueryParameter("RegionId", "cn-hangzhou");
- request.putQueryParameter("PhoneNumbers", phone);
- request.putQueryParameter("SignName", signName);
- request.putQueryParameter("TemplateCode", templateCode);
- request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");
- CommonResponse response = client.getCommonResponse(request);
- if (JSON.parseObject(response.getData()).get("Message").equals("OK")){
- result.setCode(200);
- result.setMsg("短信发送成功");
- }else {
- result.setCode(400);
- result.setMsg(JSON.parseObject(response.getData()).get("Message"));
- }
- return result;
- }
-
- }
- public class ToolUtil {
-
- /**
- * 判断是否是手机号
- * @param phoneNumber
- * @return
- */
- public static boolean isPhoneNumber(String phoneNumber) {
- String regex = "^1[3-9]\\d{9}$";
- return Pattern.matches(regex, phoneNumber);
- }
-
- /**
- * 获取长度为 5 的随机数字
- * @return 随机数字
- * 用途短信验证码
- */
- public static String getSmsRandomNumber() {
- char[] nonceChars = new char[5]; //指定长度为6位/自己可以要求设置
- for (int index = 0; index < nonceChars.length; ++index) {
- nonceChars[index] = SYMBOLS2.charAt(RANDOM.nextInt(SYMBOLS2.length()));
- }
- return new String(nonceChars);
- }
- }
- /**
- * 发送短信验证嘛
- */
- @GetMapping("/sendMessage")
- public Result sendMessage(@RequestParam("phone") String phone){
- Result result = new Result();
- String code = getSmsRandomNumber(); // 生成随机验证码
- try {
- if(isPhoneNumber(phone)){
- //redisDao.vSet(code,code,imaileEpxtime);
- result = smsUtil.sendSms(phone, code);
- }else {
- result.setCode(400);
- result.setMsg("手机号格式错误!");
- }
- } catch (ClientException e) {
- e.fillInStackTrace();
- result.setCode(500);
- result.setMsg(e.getErrMsg());
- }
- return result;
- }