| @@ -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); | |||
| @@ -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); | |||
| } | |||
| @@ -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); | |||
| /** | |||
| * 尚安停车 | |||
| @@ -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); | |||
| /** | |||
| * 支付状态处理 | |||
| @@ -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); | |||
| @@ -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()); | |||
| @@ -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()); | |||
| } | |||