From b7c5b7daac06946d0c0719b986ecb1f2d36a27f6 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 27 May 2021 14:30:51 +0800 Subject: [PATCH] tt --- .../iformall/douyin/pay/DouYinPayHelper.java | 26 ++++++++++++++ .../com/iformall/enums/EnumTtOrderStatus.java | 2 +- .../service/tt/impl/TtOrderServiceImpl.java | 36 ++++++++++--------- .../com/iformall/utils/sign/SignUtils.java | 5 ++- 4 files changed, 48 insertions(+), 21 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/douyin/pay/DouYinPayHelper.java b/mallinkService/src/main/java/com/iformall/douyin/pay/DouYinPayHelper.java index 00a81a13f..42d2265fe 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/pay/DouYinPayHelper.java +++ b/mallinkService/src/main/java/com/iformall/douyin/pay/DouYinPayHelper.java @@ -9,6 +9,7 @@ import java.security.NoSuchAlgorithmException; import java.util.*; import java.util.Map.Entry; +import com.iformall.utils.sign.SignUtils; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSON; @@ -91,6 +92,31 @@ public class DouYinPayHelper { return hexValue.toString(); } + public static String getTTBackSign(Map params, String signMethod) { + List paramsArr = new ArrayList<>(); + for (Map.Entry entry : params.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue().toString(); + + value = value.trim(); + if (value.startsWith("\"") && value.endsWith("\"") && value.length() > 1) { + value = value.substring(1, value.length() - 1); + } + value = value.trim(); + if (value.equals("") || value.equals("null")) { + continue; + } + paramsArr.add(value); + } + Collections.sort(paramsArr); + StringBuilder signStr = new StringBuilder(); + String sep = ""; + for (String s : paramsArr) { + signStr.append(sep).append(s); + } + return SignUtils.encrypt(signStr.toString(),signMethod); + } + diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTtOrderStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumTtOrderStatus.java index 0284aba2a..8386c5477 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTtOrderStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTtOrderStatus.java @@ -7,7 +7,7 @@ public enum EnumTtOrderStatus { ORDER_STATUS_PENDING_PAYMENT(0, "待付款"), - ORDER_STATUS_PAYMENT_ING(1,"支付中"), +// ORDER_STATUS_PAYMENT_ING(1,"支付中"), ORDER_STATUS_PAYMENT_SUCCESS(2, "已支付"), ORDER_STATUS_OVERTIME_CANCEL(3, "已取消"), ORDER_STATUS_PENDING_REFUND(4, "待退款"), diff --git a/mallinkService/src/main/java/com/iformall/service/tt/impl/TtOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/tt/impl/TtOrderServiceImpl.java index c14279689..84e6c581b 100644 --- a/mallinkService/src/main/java/com/iformall/service/tt/impl/TtOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/tt/impl/TtOrderServiceImpl.java @@ -71,7 +71,7 @@ public class TtOrderServiceImpl implements TtOrderService { orderQ.setProductId(couponId); List statuss = new ArrayList<>(); statuss.add(EnumTtOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); - statuss.add(EnumTtOrderStatus.ORDER_STATUS_PAYMENT_ING.getCode()); +// statuss.add(EnumTtOrderStatus.ORDER_STATUS_PAYMENT_ING.getCode()); statuss.add(EnumTtOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); orderQ.setStatusS(statuss); Integer listCount = ttOrderMapper.findListCount(orderQ); @@ -216,8 +216,8 @@ public class TtOrderServiceImpl implements TtOrderService { } else if (order.getOrderStatus() == EnumTtOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode()) { logger.error("订单已取消: " + order.toString()); return new ResultData(ErrorCode.ORDER_HAD_CANCEL); - } else if(order.getOrderStatus() == EnumTtOrderStatus.ORDER_STATUS_PAYMENT_ING.getCode()){ - logger.info("订单支付中: " + order.toString()); + } else if(order.getOrderStatus() == EnumTtOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()){ + logger.info("订单未支付: " + order.toString()); OrderQueryResult orderQueryResult = DouYinPayHelper.orderQuery(appInfo.getAppId(), appInfo.getSecret(), order.getId().toString(), null); String trade_state = orderQueryResult.getOrderStatus(); if ("PROCESSING".equals(trade_state)) {//处理中 @@ -250,13 +250,13 @@ public class TtOrderServiceImpl implements TtOrderService { // preOrder.setNotifyUrl();//回调地址 CreatePreOrderResult preOrderResult = DouYinPayHelper.createPreOrder(preOrder); - if(preOrderResult.isSuccess()){ - TtOrder orderSuc = new TtOrder(); - orderSuc.setId(order.getId()); - orderSuc.setOrderStatus(EnumTtOrderStatus.ORDER_STATUS_PAYMENT_ING.getCode()); - orderSuc.setUpdateDate(new Date()); - ttOrderMapper.updateById(orderSuc); - } +// if(preOrderResult.isSuccess()){ +// TtOrder orderSuc = new TtOrder(); +// orderSuc.setId(order.getId()); +// orderSuc.setOrderStatus(EnumTtOrderStatus.ORDER_STATUS_PAYMENT_ING.getCode()); +// orderSuc.setUpdateDate(new Date()); +// ttOrderMapper.updateById(orderSuc); +// } return new ResultData(preOrderResult); } @@ -284,7 +284,7 @@ public class TtOrderServiceImpl implements TtOrderService { if(appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } - if(order.getOrderStatus() == EnumTtOrderStatus.ORDER_STATUS_PAYMENT_ING.getCode()){ + if(order.getOrderStatus() == EnumTtOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()){ logger.info("订单支付中: " + order.toString()); OrderQueryResult orderQueryResult = DouYinPayHelper.orderQuery(appInfo.getAppId(), appInfo.getSecret(), order.getId().toString(), null); String trade_state = orderQueryResult.getOrderStatus(); @@ -296,19 +296,21 @@ public class TtOrderServiceImpl implements TtOrderService { orderSuc.setOrderStatus(EnumTtOrderStatus.ORDER_STATUS_PAYMENT_SUCCESS.getCode()); orderSuc.setUpdateDate(new Date()); ttOrderMapper.updateById(orderSuc); - return new ResultData(ErrorCode.PAY_ORDER_EXIST,"该订单已经支付,请勿重复支付!"); +// return new ResultData(ErrorCode.PAY_ORDER_EXIST,"该订单已经支付,请勿重复支付!"); }else if ("FAIL".equals(trade_state)) {//失败 - TtOrder orderSuc = new TtOrder(); - orderSuc.setId(order.getId()); - orderSuc.setOrderStatus(EnumTtOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); - orderSuc.setUpdateDate(new Date()); - ttOrderMapper.updateById(orderSuc); +// TtOrder orderSuc = new TtOrder(); +// orderSuc.setId(order.getId()); +// orderSuc.setOrderStatus(EnumTtOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); +// orderSuc.setUpdateDate(new Date()); +// ttOrderMapper.updateById(orderSuc); + return new ResultData(ErrorCode.PAY_ORDER_ERROR); }else if ("TIMEOUT".equals(trade_state)) {//超时 TtOrder orderSuc = new TtOrder(); orderSuc.setId(order.getId()); orderSuc.setOrderStatus(EnumTtOrderStatus.ORDER_STATUS_OVERTIME_CANCEL.getCode()); orderSuc.setUpdateDate(new Date()); ttOrderMapper.updateById(orderSuc); + return new ResultData(ErrorCode.PAY_ORDER_CLOSED); } } return new ResultData(); diff --git a/mallinkService/src/main/java/com/iformall/utils/sign/SignUtils.java b/mallinkService/src/main/java/com/iformall/utils/sign/SignUtils.java index 85a9266d8..683c6fbfc 100644 --- a/mallinkService/src/main/java/com/iformall/utils/sign/SignUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/sign/SignUtils.java @@ -5,8 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.security.MessageDigest; -import java.util.Arrays; -import java.util.Map; +import java.util.*; public class SignUtils { @@ -53,7 +52,7 @@ public class SignUtils { return encrypt(str, "MD5"); } - private static String encrypt(String str, String algorithm) { + public static String encrypt(String str, String algorithm) { try { MessageDigest md = MessageDigest.getInstance(algorithm); md.update(str.getBytes("UTF-8"));