| | |
| | | public static String getMD5(String str) { |
| | | if (StringUtils.isNotEmpty(str)) { |
| | | try { |
| | | // 创建MD5加密实例 |
| | | MessageDigest md = MessageDigest.getInstance("MD5"); |
| | | md.update(str.getBytes()); |
| | | byte b[] = md.digest(); |
| | | int i; |
| | | StringBuffer buf = new StringBuffer(""); |
| | | for (int offset = 0; offset < b.length; offset++) { |
| | | i = b[offset]; |
| | | if (i < 0) |
| | | i += 256; |
| | | if (i < 16) |
| | | buf.append("0"); |
| | | buf.append(Integer.toHexString(i)); |
| | | |
| | | // 执行加密操作 |
| | | byte[] messageDigest = md.digest(str.getBytes()); |
| | | |
| | | // 将得到的散列值转换为十六进制 |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (byte b : messageDigest) { |
| | | sb.append(String.format("%02x", b)); |
| | | } |
| | | //32位加密(小写) |
| | | return buf.toString(); |
| | | //32位加密(大写) |
| | | //return buf.toString().toUpperCase(); |
| | | // 16位的加密(小写) |
| | | //return buf.toString().substring(8, 24); |
| | | // 16位的加密(大写) |
| | | //return buf.toString().substring(8, 24).toUpperCase(); |
| | | |
| | | // 返回MD5散列值 |
| | | return sb.toString(); |
| | | } catch (NoSuchAlgorithmException e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | package com.ruoyi.integration.barrierGate.model; |
| | | |
| | | import com.alibaba.nacos.common.utils.MD5Utils; |
| | | import com.ruoyi.common.core.utils.MD5Util; |
| | | import lombok.Data; |
| | | import lombok.experimental.Accessors; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.tomcat.util.security.MD5Encoder; |
| | | |
| | | import java.nio.charset.Charset; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | |
| | | String str = String.format("action=%s&appkey=%s&channel=%s×tamp=%s&key=%s", this.getAction(), this.getAppkey(), this.getChannel(), this.getTimestamp(), secretkey); |
| | | log.info("待签名串:{}", str); |
| | | //MD5加密 |
| | | String encoder = MD5Util.encoder(str); |
| | | String encoder = MD5Util.getMD5(str); |
| | | //将签名结果转大写 |
| | | encoder = encoder.toUpperCase(); |
| | | log.info("签名结果:{}", encoder); |
| | | this.setSign(encoder); |
| | | return this; |
| | | } |
| | | |
| | | } |
| | |
| | | TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, addChargingOrder.getId()) |
| | | .in(TChargingOrder::getStatus, Arrays.asList(1, 2, 3)).eq(TChargingOrder::getDelFlag, 0)); |
| | | if(null != one){ |
| | | return AjaxResult.error("充电枪正在充电桩中,启动失败"); |
| | | return AjaxResult.error("充电枪正在充电中,启动失败"); |
| | | } |
| | | //查询当前充电枪是否有正在支付的订单 |
| | | one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, addChargingOrder.getId()) |