فهرست منبع

红德堂-app提现回调修改

Long 5 روز پیش
والد
کامیت
65d3547eb0

+ 2 - 2
fs-service/src/main/java/com/fs/his/service/IFsIntegralRedPacketLogService.java

@@ -5,7 +5,7 @@ import com.fs.common.core.domain.R;
 import com.fs.his.domain.FsIntegralRedPacketLog;
 import com.fs.his.param.FsIntegralRedPacketLogParam;
 import com.fs.his.vo.FsIntegralRedPacketLogVo;
-import com.github.binarywang.wxpay.bean.transfer.TransferBillsNotifyResult;
+import com.github.binarywang.wxpay.bean.notify.WxPayTransferBatchesNotifyV3Result;
 
 import java.util.List;
 
@@ -66,7 +66,7 @@ public interface IFsIntegralRedPacketLogService extends IService<FsIntegralRedPa
     int deleteFsIntegralRedPacketLogByLogId(Long logId);
 
     R syncRedPacket(String outBatchNo, String batchId);
-    R syncErrorRedPacket(TransferBillsNotifyResult.DecryptNotifyResult result);
+    R syncErrorRedPacket(WxPayTransferBatchesNotifyV3Result.DecryptNotifyResult result);
 
     FsIntegralRedPacketLog getRedPacketLogByCode(String orderCode);
 

+ 18 - 21
fs-service/src/main/java/com/fs/his/service/impl/FsIntegralRedPacketLogServiceImpl.java

@@ -15,8 +15,8 @@ import com.fs.his.param.FsIntegralRedPacketLogParam;
 import com.fs.his.service.IFsIntegralRedPacketLogService;
 import com.fs.his.vo.FsIntegralRedPacketLogVo;
 import com.fs.system.service.ISysConfigService;
+import com.github.binarywang.wxpay.bean.notify.WxPayTransferBatchesNotifyV3Result;
 import com.github.binarywang.wxpay.bean.transfer.TransferBillsGetResult;
-import com.github.binarywang.wxpay.bean.transfer.TransferBillsNotifyResult;
 import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.TransferService;
@@ -302,29 +302,26 @@ public class FsIntegralRedPacketLogServiceImpl extends ServiceImpl<FsIntegralRed
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R syncErrorRedPacket(TransferBillsNotifyResult.DecryptNotifyResult result) {
-        String state = result.getState();
-        if ("FAIL".equals(state) || "CANCELLED".equals(state)) {
-            String outBillNo = result.getOutBillNo();
-            if (StringUtils.isNotBlank(outBillNo)) {
-                FsIntegralRedPacketLog log = baseMapper.selectFsIntegralRedPacketLogByBatchNo(outBillNo);
-                if (log!=null){
-                    if ("-1".equals(log.getStatus()) || "-2".equals(log.getStatus())){
-                        return R.ok();
-                    }
-                    log.setStatus("FAIL".equals(state)?"-1":"-2");
-                    log.setUpdateTime(new Date());
-                    log.setRemark("失败原因:" +result.getFailReason());
-                    if (StringUtils.isNotBlank(log.getBatchId())){
-                        log.setBatchId(log.getBatchId());
-                    }
-                    updateUser(log);
-                    log.setReturnedStatus(1);
-                    baseMapper.updateFsIntegralRedPacketLog(log);
+    public R syncErrorRedPacket(WxPayTransferBatchesNotifyV3Result.DecryptNotifyResult result) {
+        String outBillNo = result.getOutBatchNo();
+        if (StringUtils.isNotBlank(outBillNo)) {
+            FsIntegralRedPacketLog log = baseMapper.selectFsIntegralRedPacketLogByBatchNo(outBillNo);
+            if (log!=null){
+                if ("-1".equals(log.getStatus()) || "-2".equals(log.getStatus())){
                     return R.ok();
                 }
-                return R.error("批次不存在");
+                log.setStatus("-1");
+                log.setUpdateTime(new Date());
+                log.setRemark("失败原因: 具体原因查询微信商户后台");
+                if (StringUtils.isNotBlank(log.getBatchId())){
+                    log.setBatchId(log.getBatchId());
+                }
+                updateUser(log);
+                log.setReturnedStatus(1);
+                baseMapper.updateFsIntegralRedPacketLog(log);
+                return R.ok();
             }
+            return R.error("批次不存在");
         }
         return R.error();
     }

+ 3 - 6
fs-service/src/main/java/com/fs/his/service/impl/FsStorePaymentServiceImpl.java

@@ -1941,13 +1941,10 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService {
             signatureHeader.setNonce(request.getHeader("Wechatpay-Nonce"));
             signatureHeader.setSerial(request.getHeader("Wechatpay-Serial"));
             signatureHeader.setSignature(request.getHeader("Wechatpay-Signature"));
-            TransferBillsNotifyResult result = wxPayService.parseTransferBillsNotifyV3Result(notifyData,signatureHeader);
+            WxPayTransferBatchesNotifyV3Result result = wxPayService.parseTransferBatchesNotifyV3Result(notifyData,signatureHeader);
             logger.info("积分到零钱回调1:{}",result.getResult());
-            if (result == null){
-                return WxPayNotifyResponse.fail("");
-            }
-            if (result.getResult().getState().equals("SUCCESS")) {
-                R r = integralRedPacketLogService.syncRedPacket(result.getResult().getOutBillNo(),result.getResult().getTransferBillNo());
+            if (result.getResult().getBatchStatus().equals("FINISHED") && result.getResult().getFailNum() == 0) {
+                R r = integralRedPacketLogService.syncRedPacket(result.getResult().getOutBatchNo(),result.getResult().getBatchId());
                 logger.info("result:{}",r);
                 if (r.get("code").equals(200)){
                     return WxPayNotifyResponse.success("处理成功");