带有 paypal api 的客户端无效,使用 HTTPoison.post 的客户端身份验证失败!/3

Posted

技术标签:

【中文标题】带有 paypal api 的客户端无效,使用 HTTPoison.post 的客户端身份验证失败!/3【英文标题】:Invalid Client with paypal api, client authentication failed using 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\"", 错误。如何解决这个问题?

【问题讨论】:

这能回答你的问题吗? Reddit api oauth authentication elixir 【参考方案1】:

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

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

【讨论】:

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

以上是关于带有 paypal api 的客户端无效,使用 HTTPoison.post 的客户端身份验证失败!/3的主要内容,如果未能解决你的问题,请参考以下文章

Paypal Basic 访问身份验证中的 URL 无效

PayPal java postback API 总是无效的

Paypal API 响应:安全标头无效

Docapture 方法 paypal api 中的交易 ID 无效

Paypal API (NVP) TransactionSearch 给出错误 10004 - 开始日期无效

使用 NVP 的 MassPay API 返回“安全标头无效”