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

update paypal

上级 369cc629
......@@ -6,6 +6,7 @@ import com.paypal.base.rest.PayPalRESTException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import java.util.HashMap;
import java.util.Map;
......@@ -34,6 +35,7 @@ public class PaypalConfig {
return new OAuthTokenCredential(clientId, clientSecret, paypalSdkConfig());
}
@Primary
@Bean
public APIContext apiContext() throws PayPalRESTException {
APIContext apiContext = new APIContext(authTokenCredential().getAccessToken());
......
......@@ -15,7 +15,11 @@ import com.paypal.base.rest.APIContext;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
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.web.bind.annotation.*;
......@@ -38,7 +42,7 @@ import java.util.Optional;
@RestController
@RequestMapping(value = "/paypal")
@Transactional
public class PaypalContoller extends Controller {
public class PaypalContoller extends Controller implements BeanPostProcessor {
private static Logger logger = LoggerFactory.getLogger(PaypalContoller.class);
......@@ -62,9 +66,9 @@ public class PaypalContoller extends Controller {
private final BonusRepository bonusRepository;
private final PostRepository postRepository;
private final UserRepository userRepository;
private final DefaultListableBeanFactory defaultListableBeanFactory;
public PaypalContoller(APIContext apiContext, TbCfOrderRepository orderRepository, TbCfFinanceRepository financeRepository, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, UserRepository userRepository) {
public PaypalContoller(APIContext apiContext, TbCfOrderRepository orderRepository, TbCfFinanceRepository financeRepository, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, UserRepository userRepository, DefaultListableBeanFactory defaultListableBeanFactory) {
this.apiContext = apiContext;
this.orderRepository = orderRepository;
this.financeRepository = financeRepository;
......@@ -72,6 +76,7 @@ public class PaypalContoller extends Controller {
this.bonusRepository = bonusRepository;
this.postRepository = postRepository;
this.userRepository = userRepository;
this.defaultListableBeanFactory = defaultListableBeanFactory;
}
......@@ -83,6 +88,7 @@ public class PaypalContoller extends Controller {
*/
@PostMapping("/payment/{orderId}")
public Result payment(@PathVariable("orderId") String orderId) {
logger.info("APIContext--->" + apiContext.getAccessToken());
Result result = new Result();
//==========================支付信息校验==========================
......@@ -381,4 +387,25 @@ public class PaypalContoller extends Controller {
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论