Commit 06a9591e by xiaoer.li@freemud.com

override failPrePay

parent d0d5e9df
...@@ -604,12 +604,27 @@ public class OrderAdapter { ...@@ -604,12 +604,27 @@ public class OrderAdapter {
createOrderDto.setLongitude(longitude); createOrderDto.setLongitude(longitude);
createOrderDto.setOrderType(convent2OrderTypeEnum(orderType)); createOrderDto.setOrderType(convent2OrderTypeEnum(orderType));
createOrderDto.setPayType(QueryPayType.ONLINE_PAY); createOrderDto.setPayType(QueryPayType.ONLINE_PAY);
//电子风味卡
if (Objects.nonNull(createOrderVo.getUnionPayCard())) { if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
createOrderDto.setPayChannel(PayChannel.USVCP.getCode()); createOrderDto.setPayChannel(PayChannelType.USVCP.getEbcode());
createOrderDto.setPayChannelName(PayChannel.USVCP.getDesc()); createOrderDto.setPayChannelName(PayChannelType.USVCP.getName());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){ }
createOrderDto.setPayChannel("10102"); //混合支付
createOrderDto.setPayChannelName("储值卡支付"); else if (PayChannelType.COMB.getIndex().equals(createOrderVo.getPayChannelType())) {
createOrderDto.setPayChannel(PayChannelType.COMB.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.COMB.getName());
}
else if (PayChannelType.WECHAT.getIndex().equals(createOrderVo.getPayChannelType())) {
createOrderDto.setPayChannel(PayChannelType.WECHAT.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.WECHAT.getName());
}
else if (PayChannelType.ALIPAY.getIndex().equals(createOrderVo.getPayChannelType())) {
createOrderDto.setPayChannel(PayChannelType.ALIPAY.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.ALIPAY.getName());
}
else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
createOrderDto.setPayChannel(PayChannelType.SVC.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.SVC.getName());
} }
createOrderDto.setSource(OrderSourceType.SAAS.getCode()); createOrderDto.setSource(OrderSourceType.SAAS.getCode());
createOrderDto.setSourceName(OrderSourceType.SAAS.getDesc()); createOrderDto.setSourceName(OrderSourceType.SAAS.getDesc());
......
...@@ -54,12 +54,14 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse; ...@@ -54,12 +54,14 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.extern.log4j.Log4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import sun.rmi.runtime.Log;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -69,6 +71,7 @@ import java.util.*; ...@@ -69,6 +71,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
@Log4j
public class CheckOrder { public class CheckOrder {
// 配送费逻辑是否使用旧的 // 配送费逻辑是否使用旧的
...@@ -759,10 +762,13 @@ public class CheckOrder { ...@@ -759,10 +762,13 @@ public class CheckOrder {
if (StringUtils.isBlank(createOrderVo.getCardCode())) { if (StringUtils.isBlank(createOrderVo.getCardCode())) {
return false; return false;
} }
//这么不合规的粗暴搞法 设置支付方式
PayChannelType payType = PayChannelType.getByIndex(Byte.parseByte(createOrderVo.getChannel()));
createOrderVo.setPayChannelType(payType.getIndex());
SVCCardAmountRequest request = new SVCCardAmountRequest(); SVCCardAmountRequest request = new SVCCardAmountRequest();
request.setPartnerId(createOrderVo.getPartnerId()); request.setPartnerId(createOrderVo.getPartnerId());
request.setCardCodes(Arrays.asList(createOrderVo.getCardCode())); request.setCardCodes(Arrays.asList(createOrderVo.getCardCode()));
BaseResponse<SVCCardAmountResponse> svcCardAmount = paymentNewService.querySVCCardAmount(request, trackingNo); BaseResponse<SVCCardAmountResponse> svcCardAmount = paymentNewService.querySVCCardAmount(request, trackingNo);
if (svcCardAmount==null || svcCardAmount.getData()==null ||!ResponseResult.SUCCESS.getCode().equals(svcCardAmount.getCode())) { if (svcCardAmount==null || svcCardAmount.getData()==null ||!ResponseResult.SUCCESS.getCode().equals(svcCardAmount.getCode())) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR); throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
......
...@@ -2414,6 +2414,31 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2414,6 +2414,31 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(), ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getMessage(), null); return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(), ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getMessage(), null);
} }
/**
* 混合预支付
* @param trackingNo
* @param orderBean
* @param cardCode
* @param orderClient
* @param msg
* @return
*/
private BaseResponse failCombPreOrderPay(String trackingNo, QueryOrdersResponse.DataBean.OrderBean orderBean, String cardCode, OrderClientType orderClient, String msg) {
List<OrderClientType> notCancelOrderClientList = Lists.newArrayList(OrderClientType.APP);
if(!notCancelOrderClientList.contains(orderClient)) {
//失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, StringUtils.join(new String[]{"获取预支付失败", msg}, '-'), trackingNo, null);
orderCenterSdkService.orderCancel(cancelOrderRequest);
// TODO: 2019/9/10 hubowen mq推送变更
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
}
//svc 卡支付失败
//if (StringUtils.isNotBlank(cardCode)) {
// return ResponseUtil.error(ResponseResultEnum.PAY_BACKEND_CONFIG_ERROR.getCode(), ResponseResultEnum.PAY_BACKEND_CONFIG_ERROR.getMessage(), null);
//}
return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(),"获取混合预支付信息失败", null);
}
public OrderPayResponse getPreOrderPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount, String transId, String partnerPayOvertime) { public OrderPayResponse getPreOrderPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount, String transId, String partnerPayOvertime) {
OrderPayResponse orderPayResponse; OrderPayResponse orderPayResponse;
try { try {
...@@ -2459,6 +2484,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2459,6 +2484,7 @@ public class OrderServiceImpl implements Orderservice {
svcRequest.setPartnerId(partnerId); svcRequest.setPartnerId(partnerId);
svcRequest.setCardCodes(Arrays.asList(cardCode)); svcRequest.setCardCodes(Arrays.asList(cardCode));
//查询svc卡余额 //查询svc卡余额
log.info("svc支付:{}",transId);
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> svcCardAmountResponseBaseResponse = paymentNewService.querySVCCardAmount(svcRequest, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> svcCardAmountResponseBaseResponse = paymentNewService.querySVCCardAmount(svcRequest, trackingNo);
if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode()) if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode())
|| svcCardAmountResponseBaseResponse.getData().getData() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos())) { || svcCardAmountResponseBaseResponse.getData().getData() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos())) {
...@@ -3149,7 +3175,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3149,7 +3175,8 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse = comPayOrder(paymentRequest,createPrepayRequestDto,partnerPayOvertime,LogThreadLocal.getTrackingNo()); orderPayResponse = comPayOrder(paymentRequest,createPrepayRequestDto,partnerPayOvertime,LogThreadLocal.getTrackingNo());
if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) { if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) {
return failPreOrderPay(LogThreadLocal.getTrackingNo() log.info("混合支付返回:{}",JSON.toJSONString(orderPayResponse));
return failCombPreOrderPay(LogThreadLocal.getTrackingNo()
, createPrepayRequestDto.getProductOrderBean() , createPrepayRequestDto.getProductOrderBean()
, cardCode , cardCode
, createPrepayRequestDto.getOrderClient() , createPrepayRequestDto.getOrderClient()
...@@ -3203,6 +3230,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3203,6 +3230,7 @@ public class OrderServiceImpl implements Orderservice {
CombPayResponse responseBase = null; CombPayResponse responseBase = null;
CombPayRequest combPayRequest = null; CombPayRequest combPayRequest = null;
CombPayResponse.PayPlatform payPlatform = null; CombPayResponse.PayPlatform payPlatform = null;
log.info("混合支付...");
try { try {
String orderClient = this.getPayCodeByChanel(createPrepayRequestDto); String orderClient = this.getPayCodeByChanel(createPrepayRequestDto);
if (StringUtils.isBlank(orderClient)) { if (StringUtils.isBlank(orderClient)) {
...@@ -3218,6 +3246,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3218,6 +3246,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setMsg(responseBase.getMsg()); orderPayResponse.setMsg(responseBase.getMsg());
} }
else { else {
log.info("混合支付请求request:{},response:{}",JSON.toJSONString(combPayRequest),JSON.toJSONString(responseBase));
/** /**
* 生成预支付参数 * 生成预支付参数
*/ */
...@@ -3249,6 +3278,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3249,6 +3278,7 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
catch (Exception e) { catch (Exception e) {
log.info("混合支付异常...");
//TODO 邮件告警 //TODO 邮件告警
LogUtil.error("comPay_error", JSONObject.toJSONString(responseBase), JSONObject.toJSONString(paymentRequest), e); LogUtil.error("comPay_error", JSONObject.toJSONString(responseBase), JSONObject.toJSONString(paymentRequest), e);
orderPayResponse = new OrderPayResponse(); orderPayResponse = new OrderPayResponse();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment