lyhzzz 1 rok pred
rodič
commit
a66d90cea8

+ 2 - 0
src/main/java/com/fdkankan/pay/entity/PaypalConfig.java

@@ -77,4 +77,6 @@ public class PaypalConfig implements Serializable {
     @TableField("webhook_id")
     private String webhookId;
 
+    @TableField("webhook_host")
+    private String webhookHost;
 }

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

@@ -56,7 +56,7 @@ public class RestApiPaypalService {
                     Map<String,String> map = new HashMap<>(4);
                     map.put("Content-Type","application/json");
                     WebhookVo webhookVo = new WebhookVo();
-                    webhookVo.setUrl(CacheUtil.mainUrl +"/service/pay/paypal/webhook");
+                    webhookVo.setUrl(paypalConfig.getWebhookHost() +"/service/pay/paypal/webhook");
                     webhookVo.getEvent_types().add(new EventTypeVo("CATALOG.PRODUCT.CREATED"));
                     webhookVo.getEvent_types().add(new EventTypeVo("BILLING.PLAN.CREATED"));
                     webhookVo.getEvent_types().add(new EventTypeVo("BILLING.PLAN.ACTIVATED"));
@@ -288,8 +288,37 @@ public class RestApiPaypalService {
 
     public static void main(String[] args) throws Exception {
         PaypalConfig paypalConfig = new PaypalConfig();
-        paypalConfig.setBaseUrl("https://api.paypal.com");
-        paypalConfig.setClientId("AZJEGWlvvI2q52bR4k_mC1ftW8tEnlaJj30huGQTBsdAjwmKlMDiEiMixVKbfrdw6fB55NSj_BAE8FPP");
-        paypalConfig.setSecret("EL-RGNmsbFpcKT7QuIlxMxX7MQplp8rCyaGDZ5KOCMQ9BkOhY5OYZyVInAeHT8_4tXoPth8tOEZY_3s_");
+        paypalConfig.setBaseUrl("https://api-m.sandbox.paypal.com");
+        paypalConfig.setClientId("ATzzbHdy4kgJxUJegzDbBO1kRUE5kcur5VXaNtja4JDpLsfPokdlKAtunTVa_mWPcTQTMy06JAW6Ae5j");
+        paypalConfig.setSecret("EPBsjKmNHHrmu0joNkWcrVpdqXTs3pow5jRdD1daOMyomteOxHMUDXhsM6Z-bjMi8MfSMB4iIyuhIihV");
+
+        try {
+            Map<String,String> map = new HashMap<>(4);
+            map.put("Content-Type","application/json");
+            WebhookVo webhookVo = new WebhookVo();
+            webhookVo.setUrl("https://testeur.4dkankan.com/service/pay/paypal/webhook");
+            webhookVo.getEvent_types().add(new EventTypeVo("CATALOG.PRODUCT.CREATED"));
+            webhookVo.getEvent_types().add(new EventTypeVo("BILLING.PLAN.CREATED"));
+            webhookVo.getEvent_types().add(new EventTypeVo("BILLING.PLAN.ACTIVATED"));
+            webhookVo.getEvent_types().add(new EventTypeVo("BILLING.SUBSCRIPTION.CREATED"));
+            webhookVo.getEvent_types().add(new EventTypeVo("BILLING.SUBSCRIPTION.EXPIRED"));
+            webhookVo.getEvent_types().add(new EventTypeVo("BILLING.SUBSCRIPTION.SUSPENDED"));
+            webhookVo.getEvent_types().add(new EventTypeVo("PAYMENT.SALE.COMPLETED"));
+
+            String string =  JSONObject.toJSONString(webhookVo);
+            String body = HttpRequest.post(paypalConfig.getBaseUrl() + "/v1/notifications/webhooks")
+                    .addHeaders(map)
+                    .basicAuth(paypalConfig.getClientId(), paypalConfig.getSecret())
+                    .body(string)
+                    .execute().body();
+            log.info("paypal-createWebhooks:{}",body);
+            JSONObject resp = JSONObject.parseObject(body);
+            String webhookId = resp.getString("id");
+            paypalConfig.setWebhookId(webhookId);
+
+
+        }catch (Exception e){
+            log.info("paypal-createWebhooks:error:",e);
+        }
     }
 }