PayPalConfig.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.fdkankan.ucenter.pay.paypal.sdk;
  2. import com.paypal.base.rest.APIContext;
  3. import com.paypal.base.rest.OAuthTokenCredential;
  4. import com.paypal.base.rest.PayPalRESTException;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.stereotype.Component;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. @Slf4j
  11. @Component
  12. public abstract class PayPalConfig {
  13. abstract public String getClientId();
  14. abstract public String getSecret();
  15. abstract public String getMode();
  16. @Bean
  17. public Map<String, String> paypalSdkConfig(){
  18. Map<String, String> sdkConfig = new HashMap<>();
  19. sdkConfig.put("mode", getMode());
  20. return sdkConfig;
  21. }
  22. @Bean
  23. public OAuthTokenCredential authTokenCredential(){
  24. return new OAuthTokenCredential(getClientId(), getSecret(), paypalSdkConfig());
  25. }
  26. @Bean
  27. public APIContext apiContext() throws PayPalRESTException {
  28. String accessToken = authTokenCredential().getAccessToken();
  29. log.info("paypal新的accessToken:" + accessToken);
  30. APIContext apiContext = new APIContext(accessToken);
  31. apiContext.setConfigurationMap(paypalSdkConfig());
  32. return apiContext;
  33. }
  34. }