Browse Source

完善取消订阅

lyhzzz 1 năm trước cách đây
mục cha
commit
a317c186cd

+ 1 - 0
src/main/java/com/fdkankan/pay/common/ResultCode.java

@@ -15,6 +15,7 @@ public enum ResultCode {
     PAYPAL_ERROR(10008, "paypal支付失败!"),
     PAYPAL_CONFIG_ERROR(10009, "paypal-config缺失!"),
     ORDER_NO_PAY(10010, "订单未支付"),
+    CANCEL_SUBSCRIPTIONS_ERROR(10011, "取消订阅失败!"),
 
     ;
 

+ 13 - 8
src/main/java/com/fdkankan/pay/controller/AutopayOrderController.java

@@ -2,11 +2,13 @@ package com.fdkankan.pay.controller;
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.pay.common.ResultCode;
 import com.fdkankan.pay.common.ResultData;
 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.exception.BusinessException;
 import com.fdkankan.pay.service.IAutopayOrderService;
 import com.fdkankan.pay.service.IOrderService;
 import com.fdkankan.pay.service.IPaypalConfigService;
@@ -103,15 +105,18 @@ public class AutopayOrderController {
     @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());
-                }
-            }
+        if(autopayOrder == null){
+            throw new BusinessException(ResultCode.ORDER_NOT_EXIST);
+        }
+        Order order = orderService.getByOrderSn(orderSn);
+        if(order == null){
+            throw new BusinessException(ResultCode.ORDER_NOT_EXIST);
+        }
+        PaypalConfig paypalConfig = paypalConfigService.getByServeId(order.getServeId());
+        if(paypalConfig == null){
+            throw new BusinessException(ResultCode.PAYPAL_CONFIG_ERROR);
         }
+        restApiPaypalService.cancelSubscriptions(paypalConfig,autopayOrder.getSubscriptionId());
         return ResultData.ok();
     }
 }

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

@@ -8,7 +8,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fdkankan.pay.common.ResultCode;
 import com.fdkankan.pay.entity.PaypalConfig;
+import com.fdkankan.pay.exception.BusinessException;
 import com.fdkankan.pay.service.IPaypalConfigService;
 import com.fdkankan.pay.util.CacheUtil;
 import com.fdkankan.pay.util.paypal.restApi.vo.EventTypeVo;
@@ -277,10 +279,13 @@ public class RestApiPaypalService {
                 .basicAuth(paypalConfig.getClientId(),paypalConfig.getSecret())
                 .execute();
         // 订阅正常创建
-        log.info("resp:{}",response);
+        log.info("cancelSubscriptions-resp:{}",response);
+        if(response.getStatus() != 201){
+            throw new BusinessException(ResultCode.CANCEL_SUBSCRIPTIONS_ERROR);
+        }
         if (response.getStatus() == 201) {
             JSONObject respObj = JSONObject.parseObject(response.body());
-            System.out.println(respObj);
+            log.info("cancelSubscriptions-respObj:{}",respObj);
         }
 
     }