|
@@ -1,6 +1,7 @@
|
|
|
package com.fs.hisStore.controller;
|
|
package com.fs.hisStore.controller;
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alipay.api.AlipayApiException;
|
|
import com.alipay.api.AlipayApiException;
|
|
|
import com.alipay.api.domain.AlipayTradeRefundModel;
|
|
import com.alipay.api.domain.AlipayTradeRefundModel;
|
|
|
import com.fs.common.annotation.Log;
|
|
import com.fs.common.annotation.Log;
|
|
@@ -16,6 +17,9 @@ import com.fs.company.controller.pay.bean.AliPayBean;
|
|
|
import com.fs.company.service.ICompanyService;
|
|
import com.fs.company.service.ICompanyService;
|
|
|
import com.fs.framework.security.LoginUser;
|
|
import com.fs.framework.security.LoginUser;
|
|
|
import com.fs.framework.service.TokenService;
|
|
import com.fs.framework.service.TokenService;
|
|
|
|
|
+import com.fs.his.domain.FsHfpayConfig;
|
|
|
|
|
+import com.fs.his.mapper.FsHfpayConfigMapper;
|
|
|
|
|
+import com.fs.hisStore.domain.FsPayConfigScrm;
|
|
|
import com.fs.hisStore.domain.FsStorePaymentScrm;
|
|
import com.fs.hisStore.domain.FsStorePaymentScrm;
|
|
|
import com.fs.hisStore.param.FsStorePaymentParam;
|
|
import com.fs.hisStore.param.FsStorePaymentParam;
|
|
|
import com.fs.hisStore.service.IFsStorePaymentScrmService;
|
|
import com.fs.hisStore.service.IFsStorePaymentScrmService;
|
|
@@ -61,6 +65,9 @@ public class FsStorePaymentScrmController extends BaseController
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
HuiFuService huiFuService;
|
|
HuiFuService huiFuService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private FsHfpayConfigMapper fsHfpayConfigMapper;
|
|
|
/**
|
|
/**
|
|
|
* 查询支付明细列表
|
|
* 查询支付明细列表
|
|
|
*/
|
|
*/
|
|
@@ -212,12 +219,35 @@ public class FsStorePaymentScrmController extends BaseController
|
|
|
if(payment.getPayTypeCode().equals("weixin")){
|
|
if(payment.getPayTypeCode().equals("weixin")){
|
|
|
|
|
|
|
|
if (payment.getPayMode()!=null&&payment.getPayMode().equals("hf")){
|
|
if (payment.getPayMode()!=null&&payment.getPayMode().equals("hf")){
|
|
|
|
|
+ // 根据 appId 获取对应的汇付商户号
|
|
|
|
|
+ String huifuId = "";
|
|
|
|
|
+ logger.info("开始退款,支付记录ID:{},appId:{}", payment.getPaymentId(), payment.getAppId());
|
|
|
|
|
+
|
|
|
|
|
+ if (payment.getAppId() != null && !payment.getAppId().isEmpty()) {
|
|
|
|
|
+ FsHfpayConfig fsHfpayConfig = fsHfpayConfigMapper.selectByAppId(payment.getAppId());
|
|
|
|
|
+ logger.info("根据appId查询汇付配置,appId:{},查询结果:{}", payment.getAppId(), fsHfpayConfig);
|
|
|
|
|
+ if (fsHfpayConfig != null) {
|
|
|
|
|
+ huifuId = fsHfpayConfig.getHuifuId();
|
|
|
|
|
+ logger.info("获取到huifuId:{}", huifuId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ logger.error("未找到appId对应的汇付配置,appId:{}", payment.getAppId());
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ logger.error("支付记录的appId为空,支付记录ID:{}", payment.getPaymentId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 如果没有获取到 huifuId,返回错误
|
|
|
|
|
+ if (huifuId == null || huifuId.isEmpty()) {
|
|
|
|
|
+ return R.error("未找到对应的汇付配置信息,请检查支付记录的appId:" + payment.getAppId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest();
|
|
|
|
|
+ request.setHuifuId(huifuId);
|
|
|
request.setOrdAmt(payment.getPayMoney().toString());
|
|
request.setOrdAmt(payment.getPayMoney().toString());
|
|
|
request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
|
|
|
request.setReqSeqId("refund-"+payment.getPayCode());
|
|
request.setReqSeqId("refund-"+payment.getPayCode());
|
|
|
Map<String, Object> extendInfoMap = new HashMap<>();
|
|
Map<String, Object> extendInfoMap = new HashMap<>();
|
|
|
- extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
|
|
|
|
|
|
|
+ extendInfoMap.put("org_req_seq_id", "payment-"+payment.getPayCode());
|
|
|
request.setExtendInfo(extendInfoMap);
|
|
request.setExtendInfo(extendInfoMap);
|
|
|
HuiFuRefundResult refund = huiFuService.refund(request);
|
|
HuiFuRefundResult refund = huiFuService.refund(request);
|
|
|
logger.info("退款:"+refund);
|
|
logger.info("退款:"+refund);
|