This commit is contained in:
Lemon
2023-05-29 13:30:09 +08:00
4 changed files with 16 additions and 22 deletions

View File

@@ -753,7 +753,7 @@ public class OrderService {
orderBasicInfoService.weChatRefund(dto);
}
public void adapayRefund(WeChatRefundDTO dto) throws BaseAdaPayException {
public void adapayRefund(WeChatRefundDTO dto) {
log.info("汇付退款 param:{}", JSON.toJSONString(dto));
// 退款有两种情况 1-订单结算退款 2-用户余额退款
String refundType = dto.getRefundType();

View File

@@ -1,6 +1,7 @@
package com.jsowell.netty.handler;
import com.alibaba.fastjson2.JSONObject;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
@@ -85,7 +86,7 @@ public class RemoteStartChargingRequestHandler extends AbstractHandler{
String failedReasonMsg = ChargingFailedReasonEnum.getMsgByCode(Integer.parseInt(failedReason, 16));
if (StringUtils.equals(startResult, Constants.DOUBLE_ZERO)) {
// 启动失败
// 启动失败 682204000001000000000041
orderBasicInfoService.chargingPileFailedToStart(transactionCode, failedReasonMsg);
} else {
// 启动成功

View File

@@ -1,16 +1,10 @@
package com.jsowell.pile.service;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.dto.GenerateOrderDTO;
import com.jsowell.pile.dto.IndexQueryDTO;
import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.QueryPersonPileDTO;
import com.jsowell.pile.dto.QueryStartChargeDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
@@ -204,7 +198,7 @@ public interface IOrderBasicInfoService {
* @param orderCode
* @param failedReasonMsg
*/
void chargingPileFailedToStart(String orderCode, String failedReasonMsg) throws BaseAdaPayException;
void chargingPileFailedToStart(String orderCode, String failedReasonMsg);
/**
* 充电桩启动成功
@@ -262,7 +256,7 @@ public interface IOrderBasicInfoService {
* 汇付支付 订单退款
* @param dto
*/
void refundForOrderWithAdapay(WeChatRefundDTO dto) throws BaseAdaPayException;
void refundForOrderWithAdapay(WeChatRefundDTO dto);
/**
* 汇付支付 余额退款

View File

@@ -641,11 +641,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.WECHAT_PAY.getValue())) {
this.weChatRefund(weChatRefundDTO);
} else if (StringUtils.equals(transactionRecord.getPaymentInstitutions(), PaymentInstitutionsEnum.ADAPAY.getValue())) {
try {
this.refundForOrderWithAdapay(weChatRefundDTO);
} catch (BaseAdaPayException e) {
logger.error("汇付支付退款 param:{}", JSON.toJSONString(weChatRefundDTO), e);
}
this.refundForOrderWithAdapay(weChatRefundDTO);
}
// 订单支付记录
OrderPayRecord orderPayRecord = payRecordList.get(0);
@@ -1753,11 +1749,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
}
@Override
public void refundForOrderWithAdapay(WeChatRefundDTO dto) throws BaseAdaPayException {
public void refundForOrderWithAdapay(WeChatRefundDTO dto) {
// 查出来原来的支付信息
AdapayCallbackRecord record = adapayCallbackRecordService.selectByOrderCode(dto.getOrderCode());
if (Objects.isNull(record)) {
logger.error("orderCode:{}, 订单退款处理逻辑, 查询订单微信支付记录为空!", dto.getOrderCode());
logger.error("汇付支付orderCode:{}, 订单退款处理逻辑, 查询订单微信支付记录为空!", dto.getOrderCode());
throw new BusinessException(ReturnCodeEnum.CODE_REFUND_ORDER_CALLBACK_RECORD_ERROR);
}
@@ -1765,7 +1761,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
BigDecimal refundAmount = dto.getRefundAmount();
BigDecimal payAmt = record.getPayAmt();
if (refundAmount.compareTo(payAmt) > 0) {
logger.error("订单号:{}, 退款金额:{}(元),大于可退金额{}(元), 抛出异常", dto.getOrderCode(), refundAmount, payAmt);
logger.error("汇付支付订单号:{}, 退款金额:{}(元),大于可退金额{}(元), 抛出异常", dto.getOrderCode(), refundAmount, payAmt);
throw new BusinessException(ReturnCodeEnum.CODE_REFUND_ORDER_AMOUNT_ERROR);
}
@@ -1775,9 +1771,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
refundParams.put("refund_amt", AdapayUtil.formatAmount(dto.getRefundAmount()));
refundParams.put("refund_order_no", SnowflakeIdWorker.getSnowflakeId());
refundParams.put("notify_url", ADAPAY_REFUND_CALLBACK_URL);
Map<String, Object> response = Refund.create(id, refundParams);
logger.info("创建退款对象:{}", JSON.toJSONString(response));
try {
Map<String, Object> response = Refund.create(id, refundParams);
logger.info("汇付支付创建退款对象:{}", JSON.toJSONString(response));
} catch (BaseAdaPayException e) {
logger.error("汇付支付创建退款对象error", e);
}
}
@Override