paypal express checkout - 400 错误请求

Posted

技术标签:

【中文标题】paypal express checkout - 400 错误请求【英文标题】:paypal express checkout - 400 bad request 【发布时间】:2017-05-31 22:43:52 【问题描述】:

我正在使用这条指令https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/advanced-integration/ 来设置贝宝。唯一不同的是我需要将数据发送到 CREATE_PAYMENT_URL 端点,所以我将其作为第二个参数传输

paypal.request.post(
                CREATE_PAYMENT_URL,
                JSON.stringify(["name": "test", "price": 10]),
                 headers:  'Content-Type': 'application/json'  

            )

之后我收到 400 错误

"success":false,"errors":"statuscode":400,"message":"Invalid json message received"

后端无关紧要,因为它永远无法到达。而且我几乎可以肯定它几天前工作正常 有什么想法吗?

提琴手屏幕

【问题讨论】:

【参考方案1】:

尝试将第二个参数设置为 null,并发送一个选项对象作为第三个参数,第三个参数名为 json 的对象,其中包含一个普通的 JS 对象。

paypal.request.post(PAYMENT_URL, null, 
    json : 
        name:'test',
        price:10
      
  )

它不在文档中,我遇到了类似的问题,但在源代码中进行了挖掘以使其正常工作。

【讨论】:

谢谢你,它有效,你是救生员。但是wtf?它可能在 2 周前运行良好,并且在第二个参数的文档数据中。如果您将第二个参数设置为 null,那么它现在意味着什么? 它必须被数百万人使用,我不敢相信贝宝破坏了一切,集成文档中的示例不起作用。也许它只适用于沙盒或类似的东西? 是的,他们在文档中提到将其作为第二个参数,但我注意到如果您这样做,除非您执行 null / 第三个参数,否则它不会让您作为 json 发送。奇怪的是它没有被提及!他们必须更改了他们使用的 http 库才能完成这项工作。 谢谢,我已经向贝宝发布了请求,他们告诉我我是第一个抱怨这个问题的人,他们正在调查。我一得到答案就会在这里发布答案 现在我有另一个问题,它没有显示弹出窗口。错误:拒绝在框架中显示“sandbox.paypal.com/ru/cgi-bin/…”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。几天前就开始工作了。有什么想法吗?

以上是关于paypal express checkout - 400 错误请求的主要内容,如果未能解决你的问题,请参考以下文章

PayPal Express Checkout 通行证 transactionID

如何为 PayPal Express Checkout 配置 IPN?

如何访问 Paypal Express Checkout 的响应?

paypal express checkout - 400 错误请求

Paypal Express Checkout / React - 发送产品信息

paypal express checkout set paypal费用另加