1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| package com.hbq.cms.util;
@Slf4j @Component public class MessageUtil { private static Client messageClient;
@Resource private RedisUtils redisUtils;
@Value("${ali.endpoint}") private String endpoint; @Value("${ali.accessKey}") private String accessKey; @Value("${ali.secretKey}") private String secretKey; @Value("${ali.signName}") private String signName; @Value("${ali.templateCode}") private String templateCode; @Value("${ali.expireTime}") private Long expireTime;
@PostConstruct public void init() { try { Config config = new Config() .setAccessKeyId(accessKey) .setAccessKeySecret(secretKey); config.endpoint = endpoint; messageClient = new Client(config); } catch (Exception e) { e.printStackTrace(); log.error("初始化messageClient配置异常: 【{}】", e.fillInStackTrace()); } }
public void sendMessage(String tel) { String code = RandomUtil.randomNumbers(6); SendSmsRequest sendSmsRequest = new SendSmsRequest() .setSignName(signName) .setTemplateCode(templateCode) .setPhoneNumbers(tel) .setTemplateParam("{\"code\":\"" + code + "\"}"); try { SendSmsResponse sendSmsResponse = messageClient.sendSms(sendSmsRequest); String result = sendSmsResponse.getBody().getCode(); if ("OK".equals(result)) { redisUtils.set(String.format(RedisKey.MESSAGE_KEY,tel), code, expireTime); } } catch (Exception e) { log.error("发送短信异常:{}", e.fillInStackTrace()); } }
public boolean isCode(String tel, String code) { String resultCode = redisUtils.get(String.format(RedisKey.MESSAGE_KEY,tel)); if (resultCode != null && resultCode.equals(code)) { return true; } return false; }
public boolean isNotCode(String tel, String code) { return !isCode(tel, code); } }
|