【问题标题】:How to get a paypal access token using REST request如何使用 REST 请求获取贝宝访问令牌
【发布时间】:2013-10-17 11:25:21
【问题描述】:

我正在努力让这个工作https://developer.paypal.com/webapps/developer/docs/integration/direct/make-your-first-call/ 使用 Java + Jersey 应用程序。好像我在 POST 参数中遗漏了一些东西。

public String getPaypalToken() {
    Client client = Client.create();
    WebResource webResource = client.resource("https://api.sandbox.paypal.com/v1/oauth2/token");
    MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
    queryParams.add("username", CLIENT_ID + ":" + SECRET );
    queryParams.add("grant_type", "client_credentials");
    ClientResponse response = webResource.accept("application/json").acceptLanguage("en_US").type("application/x-www-form-urlencoded").post(ClientResponse.class, queryParams);
    return response.toString();
}

使用我得到的以前的代码:POST https://api.sandbox.paypal.com/v1/oauth2/token 返回了 401 Unauthorized 的响应状态。

这个 CURL 命令行选项可以正常工作:

curl -X POST https://api.sandbox.paypal.com/v1/oauth2/token  -H "Accept: application/json"  -H "Accept-Language: en_US"  -u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp"  -d "grant_type=client_credentials"

任何建议将不胜感激。 J.

【问题讨论】:

    标签: rest paypal jersey-client


    【解决方案1】:

    curl 中的 -u 选项发送一个 base64 编码的“用户名:密码”字符串。我不认为向 queryParams 映射添加客户端 ID/秘密会起到同样的作用(除非 Jersey 以不同的方式对待“用户名”键,我认为它不会这样做)。

    你应该试试

    webResource.header("授权", "基本" + Base64.encode(CLIENT_ID + ":" + SECRET.getBytes()))

    【讨论】:

      【解决方案2】:

      只是分享我的解决方案:

      Dictionary<string, string> sdkConfig = new Dictionary<string, string>();
      sdkConfig.Add("mode", "sandbox");
      
      string clientid = "<your client id>";
      string secretid = "<your secret id>";
      string accessToken = new OAuthTokenCredential(clientid, secretid, sdkConfig).GetAccessToken();
      

      我之前使用 RestSharp 遇到过未经授权的响应,然后发现了这个。我正在使用 nuget 包中的 paypal .net sdk。 Reference.

      【讨论】:

      • 你能告诉我如何进入android吗?
      • 试试这个 articleexample from paypal 你将需要 PayPal Java Rest SDK 用于第二个链接,不完全是 Android 示例,但它是在 Java 中......如果你还没有在 Android 中工作教我 Android 也许我们可以更快地解决你的问题 :))
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2018-02-01
      • 1970-01-01
      • 2013-12-01
      • 2021-11-10
      • 1970-01-01
      • 2016-07-29
      相关资源
      最近更新 更多