|
@@ -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();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|