瀏覽代碼

三方支付退款回调

qin 8 月之前
父節點
當前提交
cc5c4ce73d

+ 6 - 0
src/main/java/com/poteviohealth/ym/ipos/model/payment/PaymentRecords.java

@@ -26,6 +26,12 @@ public class PaymentRecords extends BaseEntity {
     @ApiModelProperty(value = "支付单号")
     private String paySn;
 
+    @ApiModelProperty(value = "退款Id")
+    private Long refundId;
+
+    @ApiModelProperty(value = "退款单号")
+    private String refundSn;
+
     @ApiModelProperty(value = "-1.未支付.0:失败,1:成功")
     private Integer status;
 

+ 19 - 5
src/main/java/com/poteviohealth/ym/ipos/service/impl/PaymentServiceImpl.java

@@ -156,6 +156,9 @@ public class PaymentServiceImpl implements IPaymentService {
         }
 
         if(YmUtil.SUCCESS.equals(back.getResult().getId()) || YmUtil.FAIL.equals(back.getResult().getId())){
+            paymentRecords.setRefundSn(refundReceive.getSn());
+            paymentRecords.setRefundId(refundReceive.getRefundId());
+            paymentRecordsService.updateById(paymentRecords);
             return VaultsResponse.success(back.getResult().getId());
         }
 
@@ -291,13 +294,24 @@ public class PaymentServiceImpl implements IPaymentService {
 
     @Override
     public String payReverseNotification(PayNotification payNotification) {
-        /*QueryWrapper<PaymentRecords> queryMapper = new QueryWrapper<>();
-        queryMapper.eq("pay_id",payNotification.getPos_seq());
+        QueryWrapper<PaymentRecords> queryMapper = new QueryWrapper<>();
+        queryMapper.eq("trade_no",payNotification.getTrade_no());
         try {
             PaymentRecords pr = paymentRecordsService.getOne(queryMapper);
-                //支付通知
+                //退款通知
                 if(!pr.getTransType().equals("2")){
-
+                    pr.setTransType(pr.getTransType());
+                    pr.setEndTime(payNotification.getEnd_time());
+                    RefundReceive refundReceive = new RefundReceive();
+                    refundReceive.setRefundId(pr.getRefundId());
+                    refundReceive.setSn(pr.getRefundSn());
+                    refundReceive.setOperatorId(pr.getOperatorId());
+                    VaultsResponse vaultsResponse = orderFeignClient.changeOrderRefund(refundReceive);
+                    if(vaultsResponse.validate()){
+                        paymentRecordsService.updateById(pr);
+                    }else {
+                        return "fail";
+                    }
                 }else{
                     log.info("重复推送支付成功消息---"+pr.getPaySn());
                 }
@@ -306,7 +320,7 @@ public class PaymentServiceImpl implements IPaymentService {
         }catch (Exception e){
             e.printStackTrace();
             return "fail";
-        }*/
+        }
         return "success";
 
     }