Browse Source

二维码图片

523096025 2 năm trước cách đây
mục cha
commit
c4d79d0b90

+ 5 - 0
admin/pom.xml

@@ -25,6 +25,11 @@
         </dependency>
 
         <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>net.coobird</groupId>
             <artifactId>thumbnailator</artifactId>
             <version>0.4.8</version>

+ 3 - 1
admin/src/main/java/com/huimv/farm/damsubsidy/common/utils/SmsUtils.java

@@ -51,8 +51,10 @@ public class SmsUtils {
                 .append(submit.getParams())
                 .append(submit.getSign())
                 .append(submit.getAddSerial());
-        String selfMac = DigestUtils.md5DigestAsHex(stringBuffer.toString().getBytes()).toLowerCase();
+        String s = DigestUtils.md5DigestAsHex(stringBuffer.toString().getBytes()).toLowerCase();
+        submit.setMac(s);
         String reqText = JSON.toJSONString(submit);
+        System.out.println(reqText);
         String body = Base64.getEncoder().encodeToString(reqText.getBytes());
         HttpEntity<String> httpEntity = new HttpEntity<String>(body, httpHeaders);
         JSONObject result = restTemplate.postForObject(URL, httpEntity, JSONObject.class);

+ 82 - 0
admin/src/main/java/com/huimv/farm/damsubsidy/test/LoginTest.java

@@ -0,0 +1,82 @@
+package com.huimv.farm.damsubsidy.test;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.farm.damsubsidy.common.utils.Result;
+import com.huimv.farm.damsubsidy.common.utils.ResultCode;
+import com.huimv.farm.damsubsidy.common.utils.SmsUtils;
+import com.huimv.farm.damsubsidy.entity.BillBuyInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
+
+@RestController
+@RequestMapping("/sys-user")
+@CrossOrigin
+public class LoginTest {
+
+    @Autowired
+    private RedisTemplate<String,String> redisTemplate;
+
+
+    @PostMapping("/senCode")
+    public void senCode(@RequestBody Map<String,String> paramsMap) throws Exception {
+        String phone = paramsMap.get("phone");
+        System.out.println(phone);
+        String code = generateRandomCode();
+
+        //模板id
+        String templateId = "e683346d84234fc1a0816791587a4335";
+        //模板里的参数,可多个
+        String[] params = {code};
+        // 调用发送短信的接口
+        JSONObject success = SmsUtils.sendSms(templateId,phone, params);
+        Boolean success1 = (Boolean)success.get("success");
+        if (success1) {
+            // 如果发送成功,将手机号和验证码保存
+            redisTemplate.opsForValue().set("xumu:"+phone,code,5L, TimeUnit.MINUTES);
+            System.out.println("发送成功");
+//            phoneCodeMap.put(phoneNumber, code);
+        } else {
+            // do something
+
+        }
+        System.out.println(success);
+
+
+
+    }
+
+    @PostMapping("/checkCode")
+    public void listTransaction(@RequestBody Map<String,String> paramsMap){
+        String phone = paramsMap.get("phone");
+        String code  =  paramsMap.get("code");
+        //是否存在
+        Boolean aBoolean = redisTemplate.hasKey("xumu:" + phone);
+        //是否过期
+        Boolean is = redisTemplate.hasKey("xumu:" + phone);
+
+        System.out.println(aBoolean);
+        System.out.println(is);
+        String s = redisTemplate.opsForValue().get("xumu:" + phone);
+        if (!code.equals(s)){
+            System.out.println("验证码错误");
+        }else {
+            System.out.println("登录成功");
+        }
+
+    }
+    private static String generateRandomCode() {
+        Random random = new Random();
+        String code = "";
+        for (int i = 0; i < 6; i++) {
+            code += random.nextInt(10);
+        }
+        return code;
+    }
+}

+ 16 - 0
admin/src/main/java/com/huimv/farm/damsubsidy/test/QrCodeExcelPrinter.java

@@ -8,9 +8,11 @@ import java.io.IOException;
 
 import javax.imageio.ImageIO;
 
+import com.alibaba.fastjson.JSONObject;
 import com.google.zxing.BarcodeFormat;
 import com.google.zxing.common.BitMatrix;
 import com.google.zxing.qrcode.QRCodeWriter;
+import com.huimv.farm.damsubsidy.common.utils.SmsUtils;
 
 
 public class QrCodeExcelPrinter {
@@ -79,5 +81,19 @@ public class QrCodeExcelPrinter {
     }
 
 
+//    public static void main(String[] args) throws Exception {
+//
+////         String mobiles = "13140429955,13140429955";
+////        String templateId = "e683346d84234fc1a0816791587a4335";
+////         String[] paramss = {"632431"};
+//        //发送的手机号
+//        String mobiles = "13140429955";
+//        //模板id
+//        String templateId = "e683346d84234fc1a0816791587a4335";
+//        //模板里的参数,可多个
+//         String[] paramss = {"632431"};
+//        JSONObject jsonObject = SmsUtils.sendSms(mobiles,templateId,paramss);
+//        System.out.println(jsonObject);
+//    }
 
 }

+ 84 - 0
admin/src/main/java/com/huimv/farm/damsubsidy/test/SmsAuthLogin.java

@@ -0,0 +1,84 @@
+package com.huimv.farm.damsubsidy.test;// 导入相关依赖
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.farm.damsubsidy.common.utils.SmsUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+
+/**
+ * 短信验证登录示例
+ */
+public class SmsAuthLogin {
+
+    private static final String ACCESS_KEY_ID = "your_access_key_id";
+    private static final String ACCESS_KEY_SECRET = "your_access_key_secret";
+    private static final String SIGN_NAME = "your_signature_name";
+    private static final String TEMPLATE_CODE = "your_template_code";
+
+
+
+
+    // 保存手机号和验证码的映射
+    private static final Map<String, String> phoneCodeMap = new HashMap<>();
+
+    public static void main(String[] args) throws Exception {
+        String phoneNumber = "your_phone_number";
+        String code = generateRandomCode();
+
+        String mobiles = "13140429955";
+        //模板id
+        String templateId = "e683346d84234fc1a0816791587a4335";
+        //模板里的参数,可多个
+        String[] paramss = {code};
+        // 调用发送短信的接口
+        JSONObject success = SmsUtils.sendSms(mobiles,templateId, paramss);
+        Boolean success1 = (Boolean)success.get("success");
+        if (success1) {
+            // 如果发送成功,将手机号和验证码保存在映射中,便于后续校验
+            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
+            redisTemplate.opsForHash();
+//            phoneCodeMap.put(phoneNumber, code);
+        } else {
+            // do something
+        }
+        
+        // 客户端提交的手机号和验证码
+        String inputPhoneNumber = "your_input_phone_number";
+        String inputCode = "your_input_code";
+        // 校验验证码是否正确
+        if (checkCode(inputPhoneNumber, inputCode)) {
+            // 登录成功
+        } else {
+            // 登录失败
+        }
+    }
+
+    /**
+     * 生成随机验证码
+     */
+    private static String generateRandomCode() {
+        Random random = new Random();
+        String code = "";
+        for (int i = 0; i < 6; i++) {
+            code += random.nextInt(10);
+        }
+        return code;
+    }
+
+
+
+    /**
+     * 验证手机号和验证码是否匹配
+     */
+    private static boolean checkCode(String phoneNumber, String code) {
+        String savedCode = phoneCodeMap.get(phoneNumber);
+        if (savedCode != null && savedCode.equals(code)) {
+            return true;
+        }
+        return false;
+    }
+
+}