获得paypal rest api grails的访问令牌

时间:2015-08-03 11:27:13

标签: grails curl paypal oauth httpclient

如何在grails中使用paypal rest api

curl -v 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"

DOC:https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/

我需要在grails中获取身份验证令牌。它在终端没有任何问题。

我尝试使用HttpClient来实现它,但是如何传递用户凭据。在上面的示例中使用-u uname:pass中的HttpClient指定。?

1 个答案:

答案 0 :(得分:1)

您似乎正在使用基本身份验证进行身份验证(请参阅how to set basic auth in curlthe client's section for Basic Auth in the Wikipedia)

Apache的Http Client为您提供身份验证处理,但在这种情况下,手动创建标题似乎更容易:

Request addBasicAuthHeader(String username, String password) {
   return addBasicAuthHeader(createBasicAuth(username, password))
}

Request addBasicAuthHeader(String headerValue) {
   request.addHeader("Authorization", "Basic ${headerValue}")
   return request
}

private String createBasicAuthHeader(String username, password) {
   "$username:$password".toString().bytes.encodeBase64()
}

您可以调用任何addBasicAuthHeader方法(可能使它们适应您正在使用的HttpClient的风格),允许您从其原始值添加基本的auth标头(您拥有的内容) curl' -u标记)或来自一对用户名和密码。