【问题标题】:paypal express checkout - 400 bad requestpaypal express checkout - 400 错误请求
【发布时间】: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"}}

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

提琴手屏幕

【问题讨论】:

    标签: javascript paypal


    【解决方案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”。几天前就开始工作了。有什么想法吗?
    猜你喜欢
    • 2018-04-27
    • 2017-12-29
    • 2012-12-21
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2018-11-04
    • 2019-09-15
    相关资源
    最近更新 更多