PayPal 请求不断收到 MALFORMED_REQUEST

Posted

技术标签:

【中文标题】PayPal 请求不断收到 MALFORMED_REQUEST【英文标题】:PayPal Request keep getting MALFORMED_REQUEST 【发布时间】:2015-11-12 23:44:48 【问题描述】:

我尝试向 PayPal 付款。但由于某种原因,我只收到一个 MALFORMED_REQUEST 错误。 没有更多信息。甚至没有异常的 getData() 函数。

这是编译好的 JSON:


"intent": "sale",
"payer": 
    "payment_method": "paypal",
    "payer_info": 
        "first_name": "Testvorname",
        "last_name": "Testnachname",
        "email": "test@example.com",
        "suffix": "Herr"
    
,
"transactions": [
    
        "amount": 
            "currency": "EUR",
            "total": "72.00"
        ,
        "item_list": 
            "items": [
                
                    "quantity": "4",
                    "name": "test1",
                    "price": "8",
                    "currency": "EUR"
                ,
                
                    "quantity": "2",
                    "name": "test2",
                    "price": "20",
                    "currency": "EUR"
                
            ]
        
    
],
"redirect_urls": 
    "return_url": "https://www.google.de",
    "cancel_url": "https://www.google.de"
 

我不知道这个 JSON 有什么问题。 我正在使用 php SDK。

【问题讨论】:

您在此处显示的 JSON 验证正确。您确定这就是实际发送到 PayPal 的内容吗?如果您继续与之斗争,您可能想尝试this PayPal PHP SDK。它适用于 Classic API(我仍然喜欢并推荐它),并且没有任何奇怪的问题,就像我在官方 PayPal SDK 中看到的那样。许多 PayPal 集成代表实际上也更喜欢这个 SDK。 【参考方案1】:

问题不在 SDK 中。您传递给贝宝服务器的数据导致了这个问题。错误信息在这里并不明显。

您不需要在“payer”对象中传递“payer_info”。删除它可以解决问题。下面是 JSON 的样子:


    "intent": "sale",
    "payer": 
        "payment_method": "paypal"
    ,
    "transactions": [
        
            "amount": 
                "currency": "EUR",
                "total": "72.00"
            ,
            "item_list": 
                "items": [
                    
                        "quantity": "4",
                        "name": "test1",
                        "price": "8",
                        "currency": "EUR"
                    ,
                    
                        "quantity": "2",
                        "name": "test2",
                        "price": "20",
                        "currency": "EUR"
                    
                ]
            
        
    ],
    "redirect_urls": 
        "return_url": "https://www.google.de",
        "cancel_url": "https://www.google.de"
    

有关更多信息,您可以随时使用 SDK 中提供的示例,以及帮助您快速帮助您调试问题的文档等。

以下是一些有用的链接:

在本地运行示例:https://github.com/paypal/PayPal-PHP-SDK/wiki/Samples 设置 SDK:https://github.com/paypal/PayPal-PHP-SDK/wiki/Making-First-Call 一般SDK信息:http://paypal.github.io/PayPal-PHP-SDK/

【讨论】:

好的,谢谢,但是如果我不能使用 payer_info 对象的意义何在? 它是响应对象的一部分。当您在 REST API 中完成 paypal express 结账流程时,您将获得付款人信息。您可以在以下位置阅读可接受的字段:developer.paypal.com/webapps/developer/docs/api

以上是关于PayPal 请求不断收到 MALFORMED_REQUEST的主要内容,如果未能解决你的问题,请参考以下文章

发送 Paypal 支付调用返回 400 格式错误的请求错误

我不断收到关于 paypal php 自适应支付 API 支付的错误“您的支付无法完成......”

PayPal REST API 格式错误的 JSON 错误

Axios Paypal 令牌问题

PayPal SOAP API - 快速结帐 - 错误 10002

为啥我在 Django 中使用此调用从 Paypal 收到“内部错误”?