| @@ -515,7 +515,7 @@ public class WxMicroPayController extends BaseController { | |||||
| // 支付完成 | // 支付完成 | ||||
| couponPayOrder.setIp(ipStr); | couponPayOrder.setIp(ipStr); | ||||
| try { | try { | ||||
| wxPayOrderService.handleMicroOrderPaySuccessForVerify(user, couponPayOrder,payWay); | |||||
| wxPayOrderService.handleMicroOrderPaySuccessForVerify(user, couponPayOrder,payWay,payVersion); | |||||
| Map map = new HashMap(); | Map map = new HashMap(); | ||||
| map.put("end", "1"); | map.put("end", "1"); | ||||
| return new ResultData(map); | return new ResultData(map); | ||||
| @@ -2150,6 +2150,7 @@ public class PosServiceImpl implements PosService { | |||||
| updateCO.setId(couponOrderId); | updateCO.setId(couponOrderId); | ||||
| updateCO.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | updateCO.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | ||||
| updateCO.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); | updateCO.setPayVendor(EnumPayWay.PAY_WAY_POS_NEU.getCode()); | ||||
| updateCO.setPayVersion(EnumPayVersion.NEU_POS_V1.getCode()); | |||||
| couponOrderMapper.updateById(updateCO); | couponOrderMapper.updateById(updateCO); | ||||
| } | } | ||||
| @@ -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); | 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); | |||||
| /** | /** | ||||
| * 尚安停车 | * 尚安停车 | ||||
| @@ -101,7 +101,7 @@ public interface WxPayOrderService { | |||||
| * @param user | * @param user | ||||
| * @param record | * @param record | ||||
| */ | */ | ||||
| void handleMicroOrderPaySuccessForVerify(WxMerchantBUser user, WxPayOrder record,EnumPayWay payWay); | |||||
| void handleMicroOrderPaySuccessForVerify(WxMerchantBUser user, WxPayOrder record,EnumPayWay payWay,EnumPayVersion payVersion); | |||||
| /** | /** | ||||
| * 支付状态处理 | * 支付状态处理 | ||||
| @@ -2731,7 +2731,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @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(); | WxCouponOrder updateCouponOrder = new WxCouponOrder(); | ||||
| updateCouponOrder.setId(couponOrderId); | updateCouponOrder.setId(couponOrderId); | ||||
| updateCouponOrder.setBUserId(bUser.getId()); | updateCouponOrder.setBUserId(bUser.getId()); | ||||
| @@ -2739,6 +2739,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); | ||||
| updateCouponOrder.setUpdateDate(new Date()); | updateCouponOrder.setUpdateDate(new Date()); | ||||
| updateCouponOrder.setPayVendor(payWay.getCode()); | updateCouponOrder.setPayVendor(payWay.getCode()); | ||||
| updateCouponOrder.setPayVersion(payVersion.getCode()); | |||||
| updateCouponOrder.updateTenantInfo(bUser); | updateCouponOrder.updateTenantInfo(bUser); | ||||
| // 核销状态更新 | // 核销状态更新 | ||||
| int num = wxCouponOrderMapper.updateById(updateCouponOrder); | int num = wxCouponOrderMapper.updateById(updateCouponOrder); | ||||
| @@ -1299,7 +1299,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| * @param coupon | * @param coupon | ||||
| */ | */ | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @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; | Date valid_date = null; | ||||
| //int limit_days = Constant.WX_LIMIT_DAYS; | //int limit_days = Constant.WX_LIMIT_DAYS; | ||||
| WxPayAccount payAccount = null; | WxPayAccount payAccount = null; | ||||
| @@ -1384,9 +1384,11 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| //有支付信息,从支付信息中取渠道 | //有支付信息,从支付信息中取渠道 | ||||
| if (null != payOrder) { | if (null != payOrder) { | ||||
| couponOrder.setPayVendor(payOrder.getPayVendor()); | couponOrder.setPayVendor(payOrder.getPayVendor()); | ||||
| couponOrder.setPayVersion(payOrder.getPayVersion()); | |||||
| }else { | }else { | ||||
| //免费券无需支付,如商户注券,核销发券,免费券等等 | //免费券无需支付,如商户注券,核销发券,免费券等等 | ||||
| couponOrder.setPayVendor(payWay.getCode()); | couponOrder.setPayVendor(payWay.getCode()); | ||||
| couponOrder.setPayVersion(payVersion.getCode()); | |||||
| } | } | ||||
| if (!isCard) { | if (!isCard) { | ||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | ||||
| @@ -1501,6 +1503,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| couponOrder.setOrderId(order.getId()); | couponOrder.setOrderId(order.getId()); | ||||
| couponOrder.setExpiredTime(valid_date); | couponOrder.setExpiredTime(valid_date); | ||||
| couponOrder.setPayVendor(EnumPayWay.PAY_WAY_NOT_UNPAY_OUTER.getCode()); | couponOrder.setPayVendor(EnumPayWay.PAY_WAY_NOT_UNPAY_OUTER.getCode()); | ||||
| couponOrder.setPayVersion(EnumPayVersion.NO_VERSION.getCode()); | |||||
| if (!isCard) { | if (!isCard) { | ||||
| couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); | ||||
| } else { | } else { | ||||
| @@ -1871,7 +1874,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // 创建couponOrder | // 创建couponOrder | ||||
| WxCouponOrder couponOrder = null; | WxCouponOrder couponOrder = null; | ||||
| try { | 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) { | } catch (Exception e) { | ||||
| logger.error("保存订单:" + e.getMessage()); | logger.error("保存订单:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.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 | // 创建couponOrder | ||||
| try { | 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) { | } catch (Exception e) { | ||||
| logger.error("保存订单:" + e.getMessage()); | logger.error("保存订单:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(), coupon.getTitle() + ErrorCode.COUPON_ORDER_SAVE_ERR.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 | // 创建couponOrder | ||||
| try { | 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) { | } catch (Exception e) { | ||||
| logger.error("创建券包:" + e.getMessage()); | logger.error("创建券包:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR); | throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR); | ||||
| @@ -3035,7 +3038,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| // 5. 创建couponOrder | // 5. 创建couponOrder | ||||
| try { | 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) { | } catch (Exception e) { | ||||
| logger.error("couponOrder失败:" + e.getMessage(),e); | logger.error("couponOrder失败:" + e.getMessage(),e); | ||||
| throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(),"["+coupon.getTitle()+"]保存券订单错误."+e.getMessage()); | throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR.getCode(),"["+coupon.getTitle()+"]保存券订单错误."+e.getMessage()); | ||||
| @@ -1136,7 +1136,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| } | } | ||||
| if (unPayOrder.getPosPayOrderId() != null) { | if (unPayOrder.getPosPayOrderId() != null) { | ||||
| try { | try { | ||||
| wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay); | |||||
| wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay,EnumPayVersion.getEnum(payAccount.getPayVersion())); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||
| @@ -1205,7 +1205,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| @Override | @Override | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @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(); | Date currentDate = new Date(); | ||||
| WxOrder order = wxOrderMapper.selectById(record.getOrderId(),record.getTenantId()); | WxOrder order = wxOrderMapper.selectById(record.getOrderId(),record.getTenantId()); | ||||
| @@ -1217,7 +1217,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| WxAppinfo appinfo = wxAppinfoService.getCAppInfo(order,payWay.getPlat()); | WxAppinfo appinfo = wxAppinfoService.getCAppInfo(order,payWay.getPlat()); | ||||
| if (record.getPayAmount().intValue() == 0 || record.getPayAmount().equals(order.getPayment())) { | if (record.getPayAmount().intValue() == 0 || record.getPayAmount().equals(order.getPayment())) { | ||||
| doCouponPayOrder(user, record, order,payWay); | |||||
| doCouponPayOrder(user, record, order,payWay,payVersion); | |||||
| } else { | } else { | ||||
| throw new MallinkException(ErrorCode.PAY_ORDER_ERROR); | 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端收银台核销券处理 | // B端收银台核销券处理 | ||||
| WxPayOrder payOrderQ = new WxPayOrder(); | WxPayOrder payOrderQ = new WxPayOrder(); | ||||
| payOrderQ.setOrderId(order.getComposeOrderId()); | payOrderQ.setOrderId(order.getComposeOrderId()); | ||||
| @@ -1258,7 +1258,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| } | } | ||||
| if (unPayOrder.getPosPayOrderId() != null) { | if (unPayOrder.getPosPayOrderId() != null) { | ||||
| try { | try { | ||||
| wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay); | |||||
| wxCouponOrderService.microPayVerify(user, unPayOrder.getPosPayOrderId(),payWay,payVersion); | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error(e.getMessage()); | logger.error(e.getMessage()); | ||||
| } | } | ||||