lyhzzz 8 meses atrás
pai
commit
bc3ca1d9b1

+ 29 - 4
src/main/java/com/fdkankan/pay/common/AutoPayUtil.java

@@ -7,21 +7,46 @@ public class AutoPayUtil {
         switch (even){
             case "PAYMENT.SALE.COMPLETED" :         //paypal支付成功
             case "checkout.session.completed" :     //stripe支付成功
-                return "PAY.COMPLETED";
+                return "PAYMENT.SALE.COMPLETED";
 
             case "BILLING.SUBSCRIPTION.PAYMENT.FAILED" :         //paypal支付失败
             case "payment_intent.payment_failed" :               //stripe支付失败
-                return "PAY.FAILED";
+                return "BILLING.SUBSCRIPTION.PAYMENT.FAILED";
 
             case "BILLING.SUBSCRIPTION.CANCELLED" :         //paypal取消订阅
             case "customer.subscription.deleted" :          //stripe取消订阅
-                return "SUBSCRIPTION.CANCELLED";
+                return "BILLING.SUBSCRIPTION.CANCELLED";
 
             case "BILLING.SUBSCRIPTION.SUSPENDED" :         //paypal订阅暂停
-                return "SUBSCRIPTION.CANCELLED";
+                return "BILLING.SUBSCRIPTION.SUSPENDED";
 
             default:
                 return even;
         }
     }
+
+    public static String getState(String status) {
+        if(status == null){
+            return null;
+        }
+        switch (status){
+            case "completed" :         //paypal支付成功
+            case "paid" :           //stripe支付成功
+                return "completed";
+
+            case "pending" :         //paypal进行中
+            case "no_payment_required" :               //stripe进行中
+                return "pending";
+
+            case "refunded" :                   //paypal退款
+                return "refunded";
+
+            case "denied" :         //paypal支付失败
+            case "unpaid" :         //stripe支付失败
+                return "denied";
+
+            default:
+                return status;
+        }
+    }
 }

+ 1 - 5
src/main/java/com/fdkankan/pay/controller/AutopayOrderController.java

@@ -55,9 +55,8 @@ public class AutopayOrderController {
 
     @PostMapping("/webhook")
     public ResultData webhook(@RequestBody JSONObject webhookObj){
-        log.info("webhook:{}",webhookObj);
         String event_type = webhookObj.getString("event_type");
-        PaypalWebhookLog log = paypalWebhookLogService.saveLog(event_type, webhookObj);
+        paypalWebhookLogService.saveLog(event_type, webhookObj);
         JSONObject resource = webhookObj.getJSONObject("resource");
         AutopayOrder autopayOrder = null;
         String subscriptionId = null;
@@ -105,9 +104,6 @@ public class AutopayOrderController {
         }
         String orderSn = autopayOrder.getOrderSn();
 
-        //通知官网支付状态状态
-        log.setStatus(1);
-        paypalWebhookLogService.updateById(log);
 
         AutopayOrderSon orderSnSon = null;
         if("PAYMENT.SALE.COMPLETED".equals(event_type)){

+ 4 - 3
src/main/java/com/fdkankan/pay/controller/StripeController.java

@@ -73,7 +73,7 @@ public class StripeController {
                 trade_no = jsonObject1.getString("payment_intent");
                 String mode = jsonObject1.getString("mode");
                 subscriptionId = jsonObject1.getString("subscription");
-                status = jsonObject1.getString("status");
+                status = jsonObject1.getString("payment_status");
                 customer = jsonObject1.getString("customer");
                 customer_email = jsonObject1.getString("customer_email");
                 JSONObject jsonObject2 = jsonObject1.getJSONObject("metadata");
@@ -120,6 +120,7 @@ public class StripeController {
             return ResultData.ok();
         }
         String autoEven = AutoPayUtil.getAutoEven(type);
+        String state = AutoPayUtil.getState(status);
 
         autopayOrder = autopayOrderService.getByOrderSn(orderId);
         if(autopayOrder == null ){
@@ -131,7 +132,7 @@ public class StripeController {
         }
 
         AutopayOrderSon orderSnSon = null;
-        if("PAY.COMPLETED".equals(autoEven)){
+        if("PAYMENT.SALE.COMPLETED".equals(autoEven)){
             orderSnSon = autopayOrderSonService.addOrderByOrder(autopayOrder.getId(),jsonObject1,6);
         }
         HashMap<String,String > map = new HashMap<>();
@@ -139,7 +140,7 @@ public class StripeController {
         map.put("subscriptionId",subscriptionId);
         map.put("eventType",autoEven);
         map.put("tradeNo",trade_no);
-        map.put("state",status);
+        map.put("state",state);
         map.put("orderSn",null);
         map.put("amount",null);
         if(orderSnSon != null){