diff --git a/pom.xml b/pom.xml
index 8d0295e..d9dd63a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -130,6 +130,21 @@
spring-security-test
test
+
+
+
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.5.3
+
+
+
+ com.aliyun
+ aliyun-java-sdk-dysmsapi
+ 1.1.0
+
+
+
diff --git a/src/main/java/com/jwl/driver/server/util/SmsUtil.java b/src/main/java/com/jwl/driver/server/util/SmsUtil.java
new file mode 100644
index 0000000..63bcdf5
--- /dev/null
+++ b/src/main/java/com/jwl/driver/server/util/SmsUtil.java
@@ -0,0 +1,124 @@
+package com.jwl.driver.server.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
+import com.aliyuncs.exceptions.ClientException;
+import com.aliyuncs.profile.DefaultProfile;
+import com.aliyuncs.profile.IClientProfile;
+import lombok.Data;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author zcx
+ * 短信工具
+ */
+@Data
+public class SmsUtil {
+
+ private static Logger logger = LoggerFactory.getLogger(SmsUtil.class);
+
+ /**
+ * 基础信息
+ */
+ private static String product = "Dysmsapi";
+ private static String url = "dysmsapi.aliyuncs.com";
+ private static String appkey = "LTAI4GH1CqJtaUVpmD1oYEUZ";
+ private static String secret = "DFG848ea8U0QaQcdiHAYznUrCWfJzn";
+ private static String smsFreeSignName = "对嘛科技";
+
+ //用于存储短信验证码
+ private static Map codeMap = new HashMap<>();
+ /**
+ * 生成短信验证码并存储
+ */
+ public static String getMessageCode(String phone){
+ String code = (int)(Math.random()*999999)+ "";
+ if (code.length() == 5){
+ code = "0" + code;
+ }
+ codeMap.put(phone, code);
+ return code;
+ }
+
+ /**
+ * 获取6位验证码
+ */
+ public static String getCodeByPhone(String phone){
+ return codeMap.get(phone);
+ }
+
+ /**
+ * 通用的发送短信的方法
+ *
+ * @param sendPhone
+ * 要发送的目标号码
+ * @param templet
+ * 要使用的模板
+ * @param jsonText
+ * 拼接对应模板的json格式的字符串
+ */
+ public static String currencySendMessage(String sendPhone, String templet,
+ String jsonText) {
+ IAcsClient aliClient = createClient();
+
+ //组装请求对象
+ SendSmsRequest request = new SendSmsRequest();
+ //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
+ request.setPhoneNumbers(sendPhone);
+ //必填:短信签名-可在短信控制台中找到
+ request.setSignName(smsFreeSignName);
+ //必填:短信模板-可在短信控制台中找到
+ request.setTemplateCode(templet);
+ //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
+ request.setTemplateParam(jsonText);
+ SendSmsResponse sendSmsResponse = null;
+ logger.info("发送短信参数内容:"+jsonText+"\n手机号码是:"+sendPhone+"\n模板编号:"+templet);
+ try {
+ sendSmsResponse = aliClient.getAcsResponse(request);
+ } catch (ClientException e) {
+ logger.error("发送短信失败:"+e.getErrMsg()+"\n"+e.getMessage());
+ e.printStackTrace();
+ }
+ if (sendSmsResponse!=null){
+ logger.info("message:"+sendSmsResponse.getMessage()+"\n"+
+ "code:"+sendSmsResponse.getCode()+"\n");
+ }else{
+ logger.info("发送短信响应为null");
+ }
+
+ return JSONObject.toJSONString(sendSmsResponse);
+
+ }
+
+ /**
+ * 创建客户端
+ * @return
+ */
+ private static IAcsClient createClient() {
+ IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", appkey,
+ secret);
+ try {
+ DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, url);
+ } catch (ClientException e) {
+ e.printStackTrace();
+ }
+ IAcsClient acsClient = new DefaultAcsClient(profile);
+ return acsClient;
+ }
+
+ public static void main(String[] args) throws IOException {
+ Map param = new HashMap<>();
+ param.put("code", 666666);
+ SmsUtil.currencySendMessage("18855146869", "SMS_198880447", JSONObject.toJSONString(param) );
+ }
+
+}