Просмотр исходного кода

fix pay v3

release_toaliyun_real
zhengfangyuan 3 лет назад
Родитель
Сommit
e7eeac2c0e
7 измененных файлов: 19 добавлений и 14 удалений
  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 Просмотреть файл

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


+ 1
- 0
mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java Просмотреть файл

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


+ 1
- 1
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); 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 Просмотреть файл

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


/** /**
* 支付状态处理 * 支付状态处理


+ 2
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Просмотреть файл

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


+ 8
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

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


+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Просмотреть файл

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


Загрузка…
Отмена
Сохранить