【问题标题】:Invalid Client with paypal api, client authentication failed using HTTPoison.post!/3带有 paypal api 的客户端无效,使用 HTTPoison.post 的客户端身份验证失败!/3
【发布时间】:2021-10-08 01:09:41
【问题描述】:

我正在使用 HTTPoison 向 Paypal api 发送请求。以下是使用其 api 登录的 paypal 文档:https://developer.paypal.com/docs/log-in-with-paypal/integrate/

当我获取代码并尝试将其交换为访问令牌时,我收到此错误:"{\"error\":\"invalid_client\",\"error_description\":\"Client Authentication failed\"}",

这是 HTTPoison.post!/3 发布请求的方式:

url = "https://api-m.sandbox.paypal.com/v1/oauth2/token"
headers = [
  Authorization: "Basic #{ClientID}:#{Secret}" 
]
body = "grant_type=authorization_code&code=#{code}"

HTTPoison.post!(url, body, headers)

这显示了status_code: 401{\"error\":\"invalid_client\",\"error_description\":\"Client Authentication failed\"}", 错误。如何解决这个问题?

【问题讨论】:

标签: api paypal elixir paypal-sandbox httpoison


【解决方案1】:

HTTP 基本身份验证要求对值进行 base-64 编码。尝试这样做:

Authorization: "Basic " <> Base.encode64("#{ClientID}:#{Secret}")

【讨论】:

  • 我在 2 天前就知道了,但无论如何感谢您的评论。我还有另一个问题,您可能知道如何解决。要授权订单,您需要在标头中传递“PayPal-Request-Id”。但是,您如何获得 paypal 请求 id 以进行授权和订购?这是贝宝文档,它没有提供有关如何获取它的信息:developer.paypal.com/docs/api/orders/v2
  • @user15690889 如果您解决了您的问题,您应该回到这里并为他人的利益回答您自己的问题(或者如果您认为与其他人无关,请删除该问题),并防止人们浪费时间重复你的努力。这不是一个客户支持网站,而是一个社区努力的知识库。
  • 我是来做这个的,但发现你已经回答了我的问题,谢谢你这样做。
猜你喜欢
  • 2021-10-28
  • 2019-06-27
  • 1970-01-01
  • 2019-01-08
  • 2016-02-22
  • 2015-04-27
  • 2017-07-22
  • 1970-01-01
  • 2016-09-29
相关资源
最近更新 更多