繁体   English   中英

贝宝REST API 403错误

[英]Paypal REST API 403 ERROR

我正在尝试将贝宝付款集成到我的JavaEE Web应用程序中。 每次我尝试付款时,都会引发403错误。

这是我正在使用的servlet:

@WebServlet(name="PaypalPayment", urlPatterns={"/paypal-payment.html"})
public class Paypal_Payment extends HttpServlet {
  private static final long serialVersionUID = 1L;
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    OAuthTokenCredential token;
    String accessToken;
    APIContext apiContext;

    Map<String, String> sdkConfig = new HashMap<String, String>();
    sdkConfig.put("mode", "sandbox");
    sdkConfig.put("service.EndPoint", "https://api.sandbox.paypal.com");
    sdkConfig.put("client_id", Constantes.PAYPAL_CLIENT_ID);
    sdkConfig.put("secret", Constantes.PAYPAL_CLIENT_SECRET);

    try{
      token = new OAuthTokenCredential(Constantes.PAYPAL_CLIENT_ID, Constantes.PAYPAL_CLIENT_SECRET, sdkConfig);
      accessToken = token.getAccessToken();
      apiContext = new APIContext(accessToken);
      apiContext.setConfigurationMap(sdkConfig);
      Amount amount = new Amount();
      amount.setCurrency("EUR");
      amount.setTotal("25");

      Transaction transaction = new Transaction();
      transaction.setDescription("Creating Payment");   
      transaction.setAmount(amount);
      List<Transaction> transactions = new ArrayList<Transaction>();
      transactions.add(transaction);
      Payer payer = new Payer();
      payer.setPaymentMethod("paypal");
      Payment payment = new Payment();
      payment.setIntent("sale");
      payment.setPayer(payer);
      payment.setTransactions(transactions);

      RedirectUrls redirectUrls = new RedirectUrls();
      redirectUrls.setCancelUrl("http://example.com/a-vos-cas-JSP/paypal-payment.html");
      redirectUrls.setReturnUrl("http://example.com/a-vos-cas-JSP/paypal-payment.html");

      payment.setRedirectUrls(redirectUrls);
      Payment createdPayment = payment.create(apiContext);
      System.out.println("createdPayment : " + createdPayment);
    }catch(PayPalRESTException e){
      e.printStackTrace();
    }
    getServletContext().getNamedDispatcher(Constantes.VUE_PAYPAL_RESPONSE).forward(request, response);
  }
}

这是控制台输出:

14:26:15550 INFO [标准输出](HTTP - 0.0.0.0-8080-6)卷曲命令:14:26:15551 INFO [标准输出](HTTP - 0.0.0.0-8080-6)卷曲-v' HTTPS ://api.sandbox.paypal.com/v1/oauth2/token '\\ 14:26:15552 INFO [标准输出](HTTP - 0.0.0.0-8080-6)-H “授权:基本QWJHQTFSQXVpeVA0RDVvQmt5d1o3dTBCanJJWkt0dm9CaVhTcDZ0QWFINlM4LXRFdzByX2hyRzNfbUZMOkVBRmhVQkJkZWRqTmJfTXV6SlNpbVI1YnY3SThQVzdwUldibGQ2aE9seThMZlNnRlhhbS1LaHJtRVZmZA ==” \\ 14:26:15,552 INFO [stdout](http--0.0.0.0-8080-6)-H“ User-Agent:PayPalSDK / paypal-core-java 1.5.0(lang = Java; v = 1.7.0_55; bit = 64; os = Mac_OS_X 10.9.2)“ \\ 14:26:15,553 INFO [stdout](http--0.0.0.0-8080-6)-H” Accept:application / json“ \\ 14:26:15,553 INFO [标准输出](http--0.0.0.0-8080-6)-d'grant_type = client_credentials'14:26:16,878信息[标准输出](http--0.0.0.0-8080-6)curl命令:14:26:16,879 INFO [标准输出](HTTP - 0.0.0.0-8080-6)卷曲-v ' https://api.sandbox.paypal.com/v1/payments/payment ' \\ 14:26:16879 INFO [标准输出](HTTP --0.0.0.0-8080-6)-H“授权:承载A015iJYDQ Hdb7TJXzJzVIW-eSm1lP8NObGmlJkTzx2wVREo“ \\ 14:26:16,879信息[stdout](http--0.0.0.0-8080-6)-H”用户代理:PayPalSDK / rest-sdk-java 0.9.0(lang = Java; v = 1.7.0_55; bit = 64; os = Mac_OS_X 10.9.2)“ \\ 14:26:16,880 INFO [stdout](http--0.0.0.0-8080-6)-H” PayPal-Request-Id:7b42030f-9b96 -4027-9257-0c1311082fa2“ \\ 14:26:16,880 INFO [stdout](http--0.0.0.0-8080-6)-H” Content-Type:application / json“ \\ 14:26:16,880 INFO [stdout] (http--0.0.0.0-8080-6)-d'{14:26:16,880 INFO [stdout](http--0.0.0.0-8080-6)“ intent”:“ sale”,14:26:16,880 INFO [stdout](http--0.0.0.0-8080-6)“付款人”:{14:26:16,881 INFO [stdout](http--0.0.0.0-8080-6)
“ payment_method”:“ paypal” 14:26:16,881 INFO [stdout](http--0.0.0.0-8080-6)},14:26:16,881 INFO [stdout](http--0.0.0.0-8080-6 )“交易”:[14:26:16,881 INFO [stdout](http--0.0.0.0-8080-6){14:26:16,881 INFO [stdout](http--0.0.0.0-8080-6)“金额”:{14:26:16,882 INFO [stdout](http--0.0.0.0-8080-6)“ currency”:“ EUR”,14:26:16,882 INFO [stdout](http--0.0.0.0- 8080-6)“总计”:“ 25” 14:26:16,882 INFO [stdout](http--0.0.0.0-8080-6)},14:26:16,882 INFO [stdout](http--0.0.0.0 -8080-6)“ description”:“创建付款” 14:26:16,882 INFO [stdout](http--0.0.0.0-8080-6)} 14:26:16,883 INFO [stdout](http--0.0。 0.0-8080-6)],14:26:16,883 INFO [stdout](http--0.0.0.0-8080-6)“ redirect_urls”:{14:26:16,883 INFO [stdout](http--0.0.0.0 -8080-6)“ return_url”:“ http://example.com/a-vos-cas-JSP/paypal-response.html”,14:26:16,883 INFO [stdout](http--0.0.0.0- 8080-6)“ cancel_url”:“ http://example.com/a-vos-cas-JSP/paypal-cancel.html ” 14:26:16,884 INFO [stdout](http--0.0.0.0-8080- 6)} 14:26:16,884 INFO [stdout](http--0.0.0.0-8080-6)}'14:26:17,909 Grave [class com.paypal.core.HttpConnection](http--0.0.0.0-8080-6 )错误代码:403,响应:{“名称”:“ REQUIRED_SCOPE_MISSING”,“消息”:“访问令牌没有必需的范围”,“信息_链接”:“ https://developer.paypal.com/webapps/developer/ docs / api /#REQUIRED_SCOPE_MISSING “,” debug_id“:” e066fbac38f41“} 14:26:17,911错误[stderr](http--0.0.0.0-8080-6)com.paypal.core.rest.PayPalRESTException:错误代码: 403,响应为:{“名称”:“ REQUIRED_SCOPE_MISSING”,“消息”:“访问令牌没有必需的作用域”,“ information_link”:“ https://developer.paypal.com/webapps/developer/docs/api/ #REQUIRED_SCOPE_MISSING “,” debug_id“:” e066fbac38f41“}

因此,有一则消息说找不到范围,但是我无法获得有关此错误的任何信息。 我想我错过了该servlet中的某些内容,但找不到。 任何帮助,将不胜感激:D非常感谢

答案包含在以下响应中:

{"name":"REQUIRED_SCOPE_MISSING",
 "message":"Access token does not have required scope",
 "information_link":"https://developer.paypal.com/webapps/developer/docs/api/#REQUIRED_SCOPE_MISSING",
 "debug_id":"e066fbac38f41"}

应用配置中缺少某些属性。 最好的选择是使用列出的debug_id与支持人员联系。 他们可以帮助您正确配置您的帐户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM