From e7eeac2c0e056870f4ec38800930418185a7c03a Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 10 Aug 2022 11:56:40 +0800 Subject: [PATCH] fix pay v3 --- .../iformall/controller/WxMicroPayController.java | 2 +- .../com/iformall/service/impl/PosServiceImpl.java | 1 + .../com/iformall/service/WxCouponOrderService.java | 2 +- .../com/iformall/service/WxPayOrderService.java | 2 +- .../service/impl/WxCouponOrderServiceImpl.java | 3 ++- .../iformall/service/impl/WxOrderServiceImpl.java | 13 ++++++++----- .../service/impl/WxPayOrderServiceImpl.java | 10 +++++----- 7 files changed, 19 insertions(+), 14 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index c1bdd633c..95a5f19a8 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -515,7 +515,7 @@ public class WxMicroPayController extends BaseController { // 支付完成 couponPayOrder.setIp(ipStr); try { - wxPayOrderService.handleMicroOrderPaySuccessForVerify(user, couponPayOrder,payWay); + wxPayOrderService.handleMicroOrderPaySuccessForVerify(user, couponPayOrder,payWay,payVersion); Map map = new HashMap(); map.put("end", "1"); return new ResultData(map); diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 6012bb42c..f77ab0b95 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -2150,6 +2150,7 @@ public class PosServiceImpl implements PosService { updateCO.setId(couponOrderId); updateCO.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); updateCO.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); + updateCO.setPayVersion(EnumPayVersion.NEU_POS_V1.getCode()); couponOrderMapper.updateById(updateCO); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 221630b29..17a1ab127 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -207,7 +207,7 @@ public interface WxCouponOrderService { WxPayOrder microPayPreVerify(WxComposeOrder composeOrder, WxCouponOrder couponOrder, WxMerchantBUser bUser, Integer price, EnumPayWay payWay,EnumPayVersion payVersion,String ipstr,String authCode); - Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay); + Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay,EnumPayVersion payVersion); /** * 尚安停车 diff --git a/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java index 5ee9e0b14..9729e2818 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java @@ -101,7 +101,7 @@ public interface WxPayOrderService { * @param user * @param record */ - void handleMicroOrderPaySuccessForVerify(WxMerchantBUser user, WxPayOrder record,EnumPayWay payWay); + void handleMicroOrderPaySuccessForVerify(WxMerchantBUser user, WxPayOrder record,EnumPayWay payWay,EnumPayVersion payVersion); /** * 支付状态处理 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 65f09b16f..a9073d648 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -2731,7 +2731,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay) { + public Integer microPayVerify(WxMerchantBUser bUser, Long couponOrderId,EnumPayWay payWay,EnumPayVersion payVersion) { WxCouponOrder updateCouponOrder = new WxCouponOrder(); updateCouponOrder.setId(couponOrderId); updateCouponOrder.setBUserId(bUser.getId()); @@ -2739,6 +2739,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); updateCouponOrder.setUpdateDate(new Date()); updateCouponOrder.setPayVendor(payWay.getCode()); + updateCouponOrder.setPayVersion(payVersion.getCode()); updateCouponOrder.updateTenantInfo(bUser); // 核销状态更新 int num = wxCouponOrderMapper.updateById(updateCouponOrder); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 17d2e42f4..5002441e1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1299,7 +1299,7 @@ public class WxOrderServiceImpl implements WxOrderService { * @param coupon */ @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxCouponOrder createCouponOrder(Date curr,WxOrder order, WxCUserBasicInfo user, WxCoupon coupon, Long couponPasswordId,EnumPayWay payWay,Long merchantId,Long bUserId,Long parentCouponOrderId) { + public WxCouponOrder createCouponOrder(Date curr,WxOrder order, WxCUserBasicInfo user, WxCoupon coupon, Long couponPasswordId,EnumPayWay payWay,EnumPayVersion payVersion,Long merchantId,Long bUserId,Long parentCouponOrderId) { Date valid_date = null; //int limit_days = Constant.WX_LIMIT_DAYS; WxPayAccount payAccount = null; @@ -1384,9 +1384,11 @@ public class WxOrderServiceImpl implements WxOrderService { //有支付信息,从支付信息中取渠道 if (null != payOrder) { couponOrder.setPayVendor(payOrder.getPayVendor()); + couponOrder.setPayVersion(payOrder.getPayVersion()); }else { //免费券无需支付,如商户注券,核销发券,免费券等等 couponOrder.setPayVendor(payWay.getCode()); + couponOrder.setPayVersion(payVersion.getCode()); } if (!isCard) { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); @@ -1501,6 +1503,7 @@ public class WxOrderServiceImpl implements WxOrderService { couponOrder.setOrderId(order.getId()); couponOrder.setExpiredTime(valid_date); couponOrder.setPayVendor(EnumPayWay.PAY_WAY_NOT_UNPAY_OUTER.getCode()); + couponOrder.setPayVersion(EnumPayVersion.NO_VERSION.getCode()); if (!isCard) { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); } else { @@ -1871,7 +1874,7 @@ public class WxOrderServiceImpl implements WxOrderService { // 创建couponOrder WxCouponOrder couponOrder = null; try { - couponOrder = createCouponOrder(new Date(),record, user, coupon, null,payWay,merchantId,bUserId,null); + couponOrder = createCouponOrder(new Date(),record, user, coupon, null,payWay,payVersion,merchantId,bUserId,null); } catch (Exception e) { logger.error("保存订单:" + e.getMessage()); throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.getMessage()); @@ -1947,7 +1950,7 @@ public class WxOrderServiceImpl implements WxOrderService { // 创建couponOrder try { - createCouponOrder(new Date(),record, user, coupon, null,EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST,null,null,couponOrder.getId()); + createCouponOrder(new Date(),record, user, coupon, null,EnumPayWay.PAY_WAY_NOT_UNPAY_GIFTLIST,EnumPayVersion.NO_VERSION,null,null,couponOrder.getId()); } catch (Exception e) { logger.error("保存订单:" + e.getMessage()); throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.getMessage()); @@ -1995,7 +1998,7 @@ public class WxOrderServiceImpl implements WxOrderService { // 创建couponOrder try { - return createCouponOrder(currentDate,updateOrder, user, coupon, null,null,null,null,null); + return createCouponOrder(currentDate,updateOrder, user, coupon, null,null,null,null,null,null); } catch (Exception e) { logger.error("创建券包:" + e.getMessage()); throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR); @@ -3035,7 +3038,7 @@ public class WxOrderServiceImpl implements WxOrderService { } // 5. 创建couponOrder try { - proxy.createCouponOrder(orderDate,record, user, coupon, couponPasswordId,payWay,null,null,null); + proxy.createCouponOrder(orderDate,record, user, coupon, couponPasswordId,payWay,payVersion,null,null,null); } catch (Exception e) { logger.error("couponOrder失败:" + e.getMessage(),e); throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(),"["+coupon.getTitle()+"]保存券订单错误."+e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 4779d1700..1f5b201cd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1136,7 +1136,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } if (unPayOrder.getPosPayOrderId() != null) { try { - wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay); + wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay,EnumPayVersion.getEnum(payAccount.getPayVersion())); } catch (Exception e) { logger.error(e.getMessage()); } @@ -1205,7 +1205,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void handleMicroOrderPaySuccessForVerify(WxMerchantBUser user, WxPayOrder record,EnumPayWay payWay) { + public void handleMicroOrderPaySuccessForVerify(WxMerchantBUser user, WxPayOrder record,EnumPayWay payWay,EnumPayVersion payVersion) { Date currentDate = new Date(); WxOrder order = wxOrderMapper.selectById(record.getOrderId(),record.getTenantId()); @@ -1217,7 +1217,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { WxAppinfo appinfo = wxAppinfoService.getCAppInfo(order,payWay.getPlat()); if (record.getPayAmount().intValue() == 0 || record.getPayAmount().equals(order.getPayment())) { - doCouponPayOrder(user, record, order,payWay); + doCouponPayOrder(user, record, order,payWay,payVersion); } else { throw new MallinkException(ErrorCode.PAY_ORDER_ERROR); } @@ -1235,7 +1235,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - private void doCouponPayOrder(WxMerchantBUser user, WxPayOrder record, WxOrder order,EnumPayWay payWay) { + private void doCouponPayOrder(WxMerchantBUser user, WxPayOrder record, WxOrder order,EnumPayWay payWay,EnumPayVersion payVersion) { // B端收银台核销券处理 WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.setOrderId(order.getComposeOrderId()); @@ -1258,7 +1258,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } if (unPayOrder.getPosPayOrderId() != null) { try { - wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay); + wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay,payVersion); } catch (Exception e) { logger.error(e.getMessage()); }