|
|
@@ -39,6 +39,8 @@ import com.fs.hisStore.enums.*;
|
|
|
import com.fs.hisStore.mapper.*;
|
|
|
import com.fs.hisStore.param.*;
|
|
|
import com.fs.huifuPay.domain.HuiFuRefundResult;
|
|
|
+import com.fs.huifuPay.domain.HuifuConfirmrefundResult;
|
|
|
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
|
|
|
import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
|
|
|
import com.fs.huifuPay.service.HuiFuService;
|
|
|
import com.fs.pay.service.IPayService;
|
|
|
@@ -796,27 +798,46 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
|
|
|
huifuId=fsPayConfig.getHuifuId();
|
|
|
}
|
|
|
}
|
|
|
- V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
|
- DecimalFormat df = new DecimalFormat("0.00");
|
|
|
- request.setOrgHfSeqId(payment.getTradeNo());
|
|
|
- request.setHuifuId(huifuId);
|
|
|
- request.setOrdAmt(df.format(refundAmount));
|
|
|
- request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
|
- request.setReqSeqId("refund-"+payment.getPayCode());
|
|
|
- Map<String, Object> extendInfoMap = new HashMap<>();
|
|
|
- extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
|
|
|
- request.setExtendInfo(extendInfoMap);
|
|
|
- HuiFuRefundResult refund = huiFuService.refund(request);
|
|
|
- logger.info("退款:"+refund);
|
|
|
- if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
|
|
|
- payment.setRefundMoney(refundAmount);
|
|
|
- payment.setStatus(-1);
|
|
|
- payment.setRefundTime(new Date());
|
|
|
- paymentService.updateFsStorePayment(payment);
|
|
|
- }else {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return R.error(refund.getResp_desc());
|
|
|
+ if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
|
|
|
+ V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
|
|
|
+ String orderCode = OrderCodeUtils.getOrderSn();
|
|
|
+ if (StringUtils.isEmpty(orderCode)) {
|
|
|
+ throw new CustomException("订单生成失败,请重试");
|
|
|
+ }
|
|
|
+ confirmRefundRequest.setReqSeqId(orderCode);
|
|
|
+ confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
|
|
|
+ confirmRefundRequest.setOrgReqDate(payment.getShareDate());
|
|
|
+ //多汇付使用appID
|
|
|
+ HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId());
|
|
|
+ if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
|
|
|
+ refund(payment,huifuId);
|
|
|
+ } else {
|
|
|
+ throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ refund(payment,huifuId);
|
|
|
}
|
|
|
+// V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
|
+// DecimalFormat df = new DecimalFormat("0.00");
|
|
|
+// request.setOrgHfSeqId(payment.getTradeNo());
|
|
|
+// request.setHuifuId(huifuId);
|
|
|
+// request.setOrdAmt(df.format(refundAmount));
|
|
|
+// request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
|
+// request.setReqSeqId("refund-"+payment.getPayCode());
|
|
|
+// Map<String, Object> extendInfoMap = new HashMap<>();
|
|
|
+// extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
|
|
|
+// request.setExtendInfo(extendInfoMap);
|
|
|
+// HuiFuRefundResult refund = huiFuService.refund(request);
|
|
|
+// logger.info("退款:"+refund);
|
|
|
+// if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){
|
|
|
+// payment.setRefundMoney(refundAmount);
|
|
|
+// payment.setStatus(-1);
|
|
|
+// payment.setRefundTime(new Date());
|
|
|
+// paymentService.updateFsStorePayment(payment);
|
|
|
+// }else {
|
|
|
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+// return R.error(refund.getResp_desc());
|
|
|
+// }
|
|
|
|
|
|
}else {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
@@ -838,6 +859,29 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ private void refund(FsStorePaymentScrm payment,String huifuId){
|
|
|
+ V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
|
+ request.setOrgHfSeqId(payment.getTradeNo());
|
|
|
+ request.setHuifuId(huifuId);
|
|
|
+ request.setOrdAmt(payment.getPayMoney().toString());
|
|
|
+ request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
|
+ request.setReqSeqId("refund-" + payment.getPayCode());
|
|
|
+ Map<String, Object> extendInfoMap = new HashMap<>();
|
|
|
+ extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
|
|
|
+ request.setExtendInfo(extendInfoMap);
|
|
|
+ HuiFuRefundResult refund = huiFuService.refund(request);
|
|
|
+ logger.info("退款:" + refund);
|
|
|
+ if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
|
|
|
+ payment.setRefundMoney(payment.getPayMoney());
|
|
|
+ payment.setStatus(-1);
|
|
|
+ payment.setRefundTime(new Date());
|
|
|
+ paymentService.updateFsStorePayment(payment);
|
|
|
+ } else {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ throw new CustomException("退款失败:" + refund.getResp_desc());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Autowired
|
|
|
private FsJstAftersalePushScrmMapper fsJstAftersalePushMapper;
|
|
|
@@ -1516,26 +1560,45 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
|
|
|
huifuId=fsPayConfig.getHuifuId();
|
|
|
}
|
|
|
}
|
|
|
- V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
|
- request.setOrdAmt(payment.getPayMoney().toString());
|
|
|
- request.setHuifuId(huifuId);
|
|
|
- request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
|
- request.setReqSeqId("refund-" + payment.getPayCode());
|
|
|
- Map<String, Object> extendInfoMap = new HashMap<>();
|
|
|
- extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
|
|
|
- request.setExtendInfo(extendInfoMap);
|
|
|
- HuiFuRefundResult refund = huiFuService.refund(request);
|
|
|
- logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund);
|
|
|
- if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
|
|
|
- FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
|
|
|
- paymentMap.setPaymentId(payment.getPaymentId());
|
|
|
- paymentMap.setStatus(-1);
|
|
|
- paymentMap.setRefundTime(DateUtils.getNowDate());
|
|
|
- paymentMap.setRefundMoney(payment.getPayMoney());
|
|
|
- fsStorePaymentMapper.updateFsStorePayment(paymentMap);
|
|
|
+ if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) {
|
|
|
+ V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest();
|
|
|
+ String orderCode = OrderCodeUtils.getOrderSn();
|
|
|
+ if (StringUtils.isEmpty(orderCode)) {
|
|
|
+ throw new CustomException("订单生成失败,请重试");
|
|
|
+ }
|
|
|
+ confirmRefundRequest.setReqSeqId(orderCode);
|
|
|
+ confirmRefundRequest.setOrgReqSeqId(payment.getShareCode());
|
|
|
+ confirmRefundRequest.setOrgReqDate(payment.getShareDate());
|
|
|
+ //多汇付使用appID
|
|
|
+ HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId());
|
|
|
+ if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
|
|
|
+ refund(payment,huifuId);
|
|
|
+ } else {
|
|
|
+ throw new CustomException("交易确认退款请求失败" + result.getResp_desc());
|
|
|
+ }
|
|
|
} else {
|
|
|
- throw new CustomException("退款请求失败" + refund.getResp_desc());
|
|
|
+ refund(payment,huifuId);
|
|
|
}
|
|
|
+// V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
|
+// request.setOrdAmt(payment.getPayMoney().toString());
|
|
|
+// request.setHuifuId(huifuId);
|
|
|
+// request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
|
+// request.setReqSeqId("refund-" + payment.getPayCode());
|
|
|
+// Map<String, Object> extendInfoMap = new HashMap<>();
|
|
|
+// extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode());
|
|
|
+// request.setExtendInfo(extendInfoMap);
|
|
|
+// HuiFuRefundResult refund = huiFuService.refund(request);
|
|
|
+// logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund);
|
|
|
+// if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) {
|
|
|
+// FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
|
|
|
+// paymentMap.setPaymentId(payment.getPaymentId());
|
|
|
+// paymentMap.setStatus(-1);
|
|
|
+// paymentMap.setRefundTime(DateUtils.getNowDate());
|
|
|
+// paymentMap.setRefundMoney(payment.getPayMoney());
|
|
|
+// fsStorePaymentMapper.updateFsStorePayment(paymentMap);
|
|
|
+// } else {
|
|
|
+// throw new CustomException("退款请求失败" + refund.getResp_desc());
|
|
|
+// }
|
|
|
}
|
|
|
//管易作废
|
|
|
if (StringUtils.isNotEmpty(fsStoreOrder.getExtendOrderId())) {
|