PayPal Rest API、validation_error、Laravel 全支付

Posted

技术标签:

【中文标题】PayPal Rest API、validation_error、Laravel 全支付【英文标题】:PayPal Rest API, validation_error, Laravel omnipay 【发布时间】:2018-09-07 01:40:01 【问题描述】:

请帮忙。我得到了

错误无效请求 - 查看详细信息

这是来自对 PayPal 的 API 调用。会是什么?

php.ini serialize_precision = -1
unit price 25.00 shipping 4.99 = total 29.99

Sandbox 和 Live 给出相同的错误:

项目金额必须加到指定金额小计(如果未指定金额详情,则为总计)PHP 7.1.15

这是我的 API 调用沙盒

请求:


"body": 
    "redirect_urls": 
        "cancel_url": "https://www.**/offer/1/pay/cancel",
        "return_url": "https://www.**/offer/1/pay/success"
    ,
    "intent": "sale",
    "payer": 
        "payment_method": "paypal"
    ,
    "transactions": [
        
            "item_list": 
                "items": [
                    
                        "currency": "EUR",
                        "price": "25.00",
                        "description": "Zustand: Wie neu",
                        "name": "The Crew: Wild Run Edition (PlayStation 4)",
                        "quantity": "1"
                    
                ]
            ,
            "amount": 
                "currency": "EUR",
                "total": "29.99"
            
        
    ]
,
"header": 
    "x-pp-ads-performed": "true",
    "content-length": "508",
    "pp_remote_addr": "0.0.0.0.0",
    "x-pp-silover": "name=SANDBOX3.API.1&silo_version=1880&app=apiplatformproxyserv&TIME=2893264986&HTTP_X_PP_AZ_LOCATOR=",
    "accept": "application/json",
    "client-auth": "No cert",
    "host": "api.sandbox.paypal.com",
    "authorization": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9NZQ",
    "x-pp-idempotencyid": "b20b59c869af_1522037676",
    "x-slr-orig-script_uri": "https://api.sandbox.paypal.com/v1/payments/payment",
    "x-pp-corrid": "b20b59c869af",
    "user-agent": "Guzzle/3.9.3 curl/7.35.0 PHP/7.1.15",
    "content-type": "application/json",
    "x-pp-slingshot-targetapp": "apiplatformproxyserv"
,
"additional_properties": ,
"method": "POST"  

回复:


    "status": 400,
    "duration_time": 48,
    "body": 
        "message": "Invalid request - see details",
        "information_link": "https://developer.paypal.com/docs/api/payments/#errors",
        "details": [
            
                "field": "transactions[0]",
                "issue": "Item amount must add up to specified amount subtotal (or total if amount details not specified)"
            
        ],
        "name": "VALIDATION_ERROR",
        "debug_id": "b20b59c869af"
    ,
    "additional_properties": ,
    "header": 
        "Date": "Mon, 26 Mar 2018 04:14:35 GMT",
        "Paypal-Debug-Id": "b20b59c869af",
        "APPLICATION_ID": "APP-80W284485P519543T",
        "Content-Language": "*",
        "CALLER_ACCT_NUM": "73ES43U4U7R5G"
    

【问题讨论】:

为什么不使用 PayPal PHP-SDK 而不是这个? PayPal 也有 10 多个 API,您尝试使用哪一个? 但是,从您发送的请求来看,问题似乎是因为您的总价格不等于您的产品总价格,如果您有任何运输详细信息,则必须在您的数量对象的详细信息对象中实施。 OP 预期的文本格式、语法、错误消息的引用格式、代码格式修复 按 OP 预期进行文本编辑、语法、错误消息的引用格式、代码格式和修复缩进/代码格式 【参考方案1】:

但是,从您发送的请求来看,问题似乎是因为您的总价不等于您的产品总价,如果您有任何运输详细信息,则必须在您的数量对象的详细信息对象中实施。 – 哈桑 7 分钟前

【讨论】:

以上是关于PayPal Rest API、validation_error、Laravel 全支付的主要内容,如果未能解决你的问题,请参考以下文章

使用 Paypal REST API 创建付款

使用 paypal/rest-api-sdk-php 的 laravel paypal 集成错误

Paypal 快速结账与 PayPal REST API 的集成

了解 PayPal 的 REST API

访问 PayPal 沙箱 Rest API 时响应 401

PayPal REST API:代表商家发出请求