Browse Source

取消订阅接口

lyhzzz 1 year ago
parent
commit
b8d63cb63b

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

@@ -4,19 +4,20 @@ package com.fdkankan.pay.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.pay.common.ResultData;
 import com.fdkankan.pay.common.ResultData;
 import com.fdkankan.pay.entity.AutopayOrder;
 import com.fdkankan.pay.entity.AutopayOrder;
+import com.fdkankan.pay.entity.Order;
+import com.fdkankan.pay.entity.PaypalConfig;
 import com.fdkankan.pay.entity.PaypalWebhookLog;
 import com.fdkankan.pay.entity.PaypalWebhookLog;
 import com.fdkankan.pay.service.IAutopayOrderService;
 import com.fdkankan.pay.service.IAutopayOrderService;
+import com.fdkankan.pay.service.IOrderService;
+import com.fdkankan.pay.service.IPaypalConfigService;
 import com.fdkankan.pay.service.IPaypalWebhookLogService;
 import com.fdkankan.pay.service.IPaypalWebhookLogService;
 import com.fdkankan.pay.util.CacheUtil;
 import com.fdkankan.pay.util.CacheUtil;
+import com.fdkankan.pay.util.paypal.restApi.RestApiPaypalService;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
 
 
@@ -39,6 +40,12 @@ public class AutopayOrderController {
     IPaypalWebhookLogService paypalWebhookLogService;
     IPaypalWebhookLogService paypalWebhookLogService;
     @Autowired
     @Autowired
     RabbitMqProducer rabbitMqProducer;
     RabbitMqProducer rabbitMqProducer;
+    @Autowired
+    RestApiPaypalService restApiPaypalService;
+    @Autowired
+    IPaypalConfigService paypalConfigService;
+    @Autowired
+    IOrderService orderService;
 
 
     @PostMapping("/webhook")
     @PostMapping("/webhook")
     public ResultData webhook(@RequestBody JSONObject webhookObj){
     public ResultData webhook(@RequestBody JSONObject webhookObj){
@@ -92,5 +99,20 @@ public class AutopayOrderController {
         rabbitMqProducer.sendByWorkQueue(CacheUtil.autoPaypalQueue,map);
         rabbitMqProducer.sendByWorkQueue(CacheUtil.autoPaypalQueue,map);
         return ResultData.ok();
         return ResultData.ok();
     }
     }
+
+    @GetMapping("/cancel/{orderSn}")
+    public ResultData cancel(@PathVariable String orderSn){
+        AutopayOrder autopayOrder = autopayOrderService.getByOrderSn(orderSn);
+        if(autopayOrder != null){
+            Order order = orderService.getByOrderSn(orderSn);
+            if(order != null){
+                PaypalConfig paypalConfig = paypalConfigService.getByServeId(order.getServeId());
+                if(paypalConfig != null){
+                    restApiPaypalService.cancelSubscriptions(paypalConfig,autopayOrder.getSubscriptionId());
+                }
+            }
+        }
+        return ResultData.ok();
+    }
 }
 }
 
 

+ 1 - 1
src/main/java/com/fdkankan/pay/util/paypal/restApi/RestApiPaypalService.java

@@ -268,7 +268,7 @@ public class RestApiPaypalService {
     /**
     /**
      * 取消订阅
      * 取消订阅
      */
      */
-    public static void cancelSubscriptions(PaypalConfig paypalConfig, String subscriptionsId) throws Exception {
+    public  void cancelSubscriptions(PaypalConfig paypalConfig, String subscriptionsId) {
         Map<String,String> map = new HashMap<>(4);
         Map<String,String> map = new HashMap<>(4);
         map.put("Content-Type","application/json");
         map.put("Content-Type","application/json");
         map.put("Authorization",getToken(paypalConfig));
         map.put("Authorization",getToken(paypalConfig));