我正在使用Java中的PayPal REST API向测试(沙盒)服务器请求访问令牌,该令牌成功,然后将该访问令牌发送回相同的沙箱服务器,以便在401未授权的情况下失败.
我按照此处的PayPal REST API说明进行操作:https://developer.paypal.com/webapps/developer/docs/api/#authentication--headers and https://developer.paypal.com/webapps/developer/docs /集成/直接/化妆您先呼叫/
我尝试使用OAuthTokenCredential对象提供本人clientId和clientSecret,但它只返回我的访问令牌,而不是appIDPayPal提供,也不是expiresIn在几分钟的时间.此外,它抱怨sdk_conf.properties我的类路径中丢失了一个文件.
然后,我创建了自己的类,使用Apache的HttpClient进行调用,以获得完整的响应,并且可以正常工作:
@Path("v1/oauth2/token")
public interface PayPalOAuthAPI {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public OAuthInfo requestAccessToken(
@HeaderParam("Authorization") String basicEncodedToken,
String requestBody
);
}
Run Code Online (Sandbox Code Playgroud)
private OAuthInfo getOAuthInfo() {
OAuthInfo info = null;
PayPalOAuthAPI client = HttpClientFactory.createRestEasyClient(80, 443, 120, 2,
API_ENDPOINT, PayPalOAuthAPI.class, true);
info = client.requestAccessToken("Basic "+
generateBase64String(PP_API_USER, PP_API_SECRET),
"grant_type=client_credentials");
if (info == null) {
throw new RuntimeException(APIResultCodes.REMOTE_UNAUTHORIZED,
"Could …Run Code Online (Sandbox Code Playgroud)