提交 d13a75e6 authored 作者: 吴德鹏's avatar 吴德鹏

update paypal

上级 369cc629
...@@ -6,6 +6,7 @@ import com.paypal.base.rest.PayPalRESTException; ...@@ -6,6 +6,7 @@ import com.paypal.base.rest.PayPalRESTException;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -34,6 +35,7 @@ public class PaypalConfig { ...@@ -34,6 +35,7 @@ public class PaypalConfig {
return new OAuthTokenCredential(clientId, clientSecret, paypalSdkConfig()); return new OAuthTokenCredential(clientId, clientSecret, paypalSdkConfig());
} }
@Primary
@Bean @Bean
public APIContext apiContext() throws PayPalRESTException { public APIContext apiContext() throws PayPalRESTException {
APIContext apiContext = new APIContext(authTokenCredential().getAccessToken()); APIContext apiContext = new APIContext(authTokenCredential().getAccessToken());
......
...@@ -15,7 +15,11 @@ import com.paypal.base.rest.APIContext; ...@@ -15,7 +15,11 @@ import com.paypal.base.rest.APIContext;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -38,7 +42,7 @@ import java.util.Optional; ...@@ -38,7 +42,7 @@ import java.util.Optional;
@RestController @RestController
@RequestMapping(value = "/paypal") @RequestMapping(value = "/paypal")
@Transactional @Transactional
public class PaypalContoller extends Controller { public class PaypalContoller extends Controller implements BeanPostProcessor {
private static Logger logger = LoggerFactory.getLogger(PaypalContoller.class); private static Logger logger = LoggerFactory.getLogger(PaypalContoller.class);
...@@ -62,9 +66,9 @@ public class PaypalContoller extends Controller { ...@@ -62,9 +66,9 @@ public class PaypalContoller extends Controller {
private final BonusRepository bonusRepository; private final BonusRepository bonusRepository;
private final PostRepository postRepository; private final PostRepository postRepository;
private final UserRepository userRepository; private final UserRepository userRepository;
private final DefaultListableBeanFactory defaultListableBeanFactory;
public PaypalContoller(APIContext apiContext, TbCfOrderRepository orderRepository, TbCfFinanceRepository financeRepository, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, UserRepository userRepository, DefaultListableBeanFactory defaultListableBeanFactory) {
public PaypalContoller(APIContext apiContext, TbCfOrderRepository orderRepository, TbCfFinanceRepository financeRepository, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, UserRepository userRepository) {
this.apiContext = apiContext; this.apiContext = apiContext;
this.orderRepository = orderRepository; this.orderRepository = orderRepository;
this.financeRepository = financeRepository; this.financeRepository = financeRepository;
...@@ -72,6 +76,7 @@ public class PaypalContoller extends Controller { ...@@ -72,6 +76,7 @@ public class PaypalContoller extends Controller {
this.bonusRepository = bonusRepository; this.bonusRepository = bonusRepository;
this.postRepository = postRepository; this.postRepository = postRepository;
this.userRepository = userRepository; this.userRepository = userRepository;
this.defaultListableBeanFactory = defaultListableBeanFactory;
} }
...@@ -83,6 +88,7 @@ public class PaypalContoller extends Controller { ...@@ -83,6 +88,7 @@ public class PaypalContoller extends Controller {
*/ */
@PostMapping("/payment/{orderId}") @PostMapping("/payment/{orderId}")
public Result payment(@PathVariable("orderId") String orderId) { public Result payment(@PathVariable("orderId") String orderId) {
logger.info("APIContext--->" + apiContext.getAccessToken());
Result result = new Result(); Result result = new Result();
//==========================支付信息校验========================== //==========================支付信息校验==========================
...@@ -381,4 +387,25 @@ public class PaypalContoller extends Controller { ...@@ -381,4 +387,25 @@ public class PaypalContoller extends Controller {
return null; return null;
} }
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
boolean containsBean = defaultListableBeanFactory.containsBean("apiContext");
if (containsBean) {
BeanDefinition apiContext = defaultListableBeanFactory.getBeanDefinition("apiContext");
//移除bean的定义和实例
defaultListableBeanFactory.removeBeanDefinition("apiContext");
//注册新的bean定义和实例
defaultListableBeanFactory.registerBeanDefinition("apiContext", apiContext);
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论