diff --git a/wfc-modules/wfc-payment/pom.xml b/wfc-modules/wfc-payment/pom.xml
index 5806320..c7f4395 100644
--- a/wfc-modules/wfc-payment/pom.xml
+++ b/wfc-modules/wfc-payment/pom.xml
@@ -104,9 +104,19 @@
- com.github.javen205
- IJPay-PayPal
- ${ijapy.version}
+ com.paypal.sdk
+ paypal-server-sdk
+ 1.0.0
+
+
+ org.slf4j
+ slf4j-api
+
+
+ ch.qos.logback
+ logback-classic
+
+
diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPalBean.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPalBean.java
index 4857cea..64cb494 100644
--- a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPalBean.java
+++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPalBean.java
@@ -1,5 +1,6 @@
package org.wfc.payment.domain;
+import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@@ -9,53 +10,11 @@ import org.springframework.stereotype.Component;
*
* @author cyc
*/
+@Data
@Component
@ConfigurationProperties(prefix = "paypal")
public class PayPalBean {
private String clientId;
- private String secret;
+ private String clientSecret;
private Boolean sandBox;
- private String domain;
-
- public String getClientId() {
- return clientId;
- }
-
- public void setClientId(String clientId) {
- this.clientId = clientId;
- }
-
- public String getSecret() {
- return secret;
- }
-
- public void setSecret(String secret) {
- this.secret = secret;
- }
-
- public Boolean getSandBox() {
- return sandBox;
- }
-
- public void setSandBox(Boolean sandBox) {
- this.sandBox = sandBox;
- }
-
- public String getDomain() {
- return domain;
- }
-
- public void setDomain(String domain) {
- this.domain = domain;
- }
-
- @Override
- public String toString() {
- return "PayPalBean{" +
- "clientId='" + clientId + '\'' +
- ", secret='" + secret + '\'' +
- ", sandBox=" + sandBox +
- ", domain='" + domain + '\'' +
- '}';
- }
}
diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/paypal/controller/PayPalController.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/paypal/controller/PayPalController.java
index a5db896..d03fcea 100644
--- a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/paypal/controller/PayPalController.java
+++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/paypal/controller/PayPalController.java
@@ -1,297 +1,82 @@
-/**
- *
- * PayPal 支付示例
- *
- * @author cyc
- */
package org.wfc.payment.pay.paypal.controller;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.ijpay.core.IJPayHttpResponse;
-import com.ijpay.core.kit.HttpKit;
-import com.ijpay.core.kit.PayKit;
-import com.ijpay.paypal.PayPalApi;
-import com.ijpay.paypal.PayPalApiConfig;
-import com.ijpay.paypal.PayPalApiConfigKit;
-import com.ijpay.paypal.accesstoken.AccessToken;
-import com.ijpay.paypal.accesstoken.AccessTokenKit;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
+import com.paypal.sdk.Environment;
+import com.paypal.sdk.PaypalServerSdkClient;
+import com.paypal.sdk.authentication.ClientCredentialsAuthModel;
+import com.paypal.sdk.models.Order;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import org.wfc.common.core.domain.R;
import org.wfc.payment.domain.PayPalBean;
+import org.wfc.payment.pay.paypal.service.IPayPalService;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
+import javax.annotation.Resource;
-@Controller
-@RequestMapping("/payPal")
+@Slf4j
+@RestController
public class PayPalController {
- private Logger log = LoggerFactory.getLogger(this.getClass());
- @Autowired
- PayPalBean payPalBean;
+ @Resource
+ private PayPalBean payPalBean;
- private final static String RETURN_URL = "/payPal/return";
- private final static String CANCEL_URL = "/payPal/cancel";
-
- @RequestMapping("test")
- @ResponseBody
- public PayPalBean test() {
- return payPalBean;
+ @Bean
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
}
- public PayPalApiConfig getConfig() {
- PayPalApiConfig config = new PayPalApiConfig();
- config.setClientId(payPalBean.getClientId());
- config.setSecret(payPalBean.getSecret());
- config.setSandBox(payPalBean.getSandBox());
- config.setDomain(payPalBean.getDomain());
- PayPalApiConfigKit.setThreadLocalApiConfig(config);
- return config;
- }
+ @Bean
+ public PaypalServerSdkClient paypalClient() {
+ return new PaypalServerSdkClient.Builder()
+// .loggingConfig(builder -> builder
+// .level(Level.DEBUG)
+// .requestConfig(logConfigBuilder -> logConfigBuilder.body(true))
+// .responseConfig(logConfigBuilder -> logConfigBuilder.headers(true)))
+ .httpClientConfig(configBuilder -> configBuilder
+ .timeout(0))
+ .environment(payPalBean.getSandBox() ? Environment.SANDBOX : Environment.PRODUCTION)
+ .clientCredentialsAuth(new ClientCredentialsAuthModel.Builder(
+ payPalBean.getClientId(),
+ payPalBean.getClientSecret())
+ .build())
+ .build();
+ }
- @RequestMapping(value = "/getAccessToken")
- @ResponseBody
- public AccessToken getAccessToken() {
- try {
- getConfig();
- return AccessTokenKit.get();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- @RequestMapping(value = "/createOrder")
- @ResponseBody
- public void createOrder(HttpServletResponse response) {
- try {
- PayPalApiConfig config = getConfig();
+ @RestController
+ @RequestMapping("/paypal")
+ public class CheckoutController {
- //参数请求参数文档 https://developer.paypal.com/docs/api/orders/v2/#orders_create
- Map dataMap = new HashMap<>();
- dataMap.put("intent", "CAPTURE");
+ @Resource
+ private IPayPalService payPalService;
- ArrayList