在使用springboot框架对接PayPal支付的时候,根据下面这个文档进行对接
最详细的 paypal 支付接口开发--Java版_J_小浩子的博客-CSDN博客
在对接过程中,用同一个账号在程序运行成功之后两三个小时都是可以支付成功的,但是到了第二天会出现token超时的错误,这个时候通过报错提示,
{"error":"invalid_token","error_description":"Access Token not found in cache"}
定位到是APIContext这个类的问题,因为springboot默认加载的时候单例模式,程序只会调用一次获取paypal token的方法,导致后面token过期,最简单的方法就是写一个静态方法,每次创建的时候都会去重新调用获取token的方法,这样就解决了上面的问题,目前不知道会不会产生新的问题,欢迎指正,静态方法代码如下。
public static APIContext apiContext() throws PayPalRESTException{ APIContext apiContext = new APIContext(authTokenCredential().getAccessToken()); apiContext.setConfigurationMap(paypalSdkConfig()); return apiContext;