Browse Source

fix pay v3

release_toaliyun_real
zhengfangyuan 3 years ago
parent
commit
e7eeac2c0e
7 changed files with 19 additions and 14 deletions
  1. +1
    -1
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  2. +1
    -0
      mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  4. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java
  5. +2
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  6. +8
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  7. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java

+ 1
- 1
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java View File

@@ -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);


+ 1
- 0
mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java View File

@@ -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);
}


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java View File

@@ -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);

/**
* 尚安停车


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java View File

@@ -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);

/**
* 支付状态处理


+ 2
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java View File

@@ -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);


+ 8
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -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());


+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java View File

@@ -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());
}


Loading…
Cancel
Save