交易金额详细信息(小计,税金,运费)必须累计到指定金额总计 - PayPal PHP SDK

时间:2018-01-02 13:19:27

标签: php paypal transactions

出于某种原因,在尝试使用SDK授权PayPal付款时,我的日志中出现以下错误:

  

错误:访问时获得Http响应代码400   https://api.sandbox.paypal.com/v1/payments/payment。   { “名”: “VALIDATION_ERROR”, “细节”:[{ “场”: “交易[0] .amount”, “问题”:“交易   金额详细信息(小计,税金,运费)必须加起来指定   金额总计“}],”消息“:”无效请求 - 请参阅详细信息“

我的交易金额似乎加起来不错,所以我不知道为什么PayPal会抛出错误,这是我的交易金额:

'transactions' => [
                0 => PayPal\Api\Transaction#5
                (
                    [PayPal\Common\PayPalModel:_propMap] => [
                        'amount' => PayPal\Api\Amount#6
                        (
                            [PayPal\Common\PayPalModel:_propMap] => [
                                'currency' => 'GBP'
                                'total' => '675.00'
                                'details' => PayPal\Api\Details#7
                                (
                                    [PayPal\Common\PayPalModel:_propMap] => [
                                        'fee' => '75.00'
                                        'subtotal' => '600.00'
                                    ]
                                )
                            ]
                        )
                        'item_list' => PayPal\Api\ItemList#8
                        (
                            [PayPal\Common\PayPalModel:_propMap] => [
                                'items' => [
                                    0 => PayPal\Api\Item#9
                                    (
                                        [PayPal\Common\PayPalModel:_propMap] => [
                                            'name' => 'Day 1: 30-12-2017'
                                            'currency' => 'GBP'
                                            'quantity' => 1
                                            'price' => '300.00'
                                        ]
                                    )
                                    1 => PayPal\Api\Item#10
                                    (
                                        [PayPal\Common\PayPalModel:_propMap] => [
                                            'name' => 'Day 2: 27-01-2018'
                                            'currency' => 'GBP'
                                            'quantity' => 1
                                            'price' => '300.00'
                                        ]
                                    )
                                ]
                            ]
                        )

这可能与number_format功能有关吗?我正在使用该函数来确保所有值与小数位一致:$grandTotal = number_format($data['job']['grandTotalAmount'], 2, '.', '');

4 个答案:

答案 0 :(得分:0)

删除您的* .paypal.com Cookie。这是PayPal系统中的一个不幸的错误,其中cookie太大而服务器错误。您可以使用两种不同的浏览器来避免此问题,例如用于PayPal Live的IE和用于PayPal Sandbox的FF。也可以使用隐身模式进行检查。

答案 1 :(得分:0)

费用不包括在总计算检查中。

这是一个PayPal错误,而不是你做错了什么。只需向税收或S& H(或甚至作为新的订单项)添加任何费用。

答案 2 :(得分:0)

我遇到了这个问题。在我的情况下,解决方案是正确的总计和小计:

subtotal必须为Price * Quantity

Total必须为Tax + shipping + subtotal

不仅要对这些字段进行硬编码。

希望会有所帮助

答案 3 :(得分:0)

我有同样的错误,原因是我没有考虑促销代码折扣的总额和小计

不幸的是,我在PayPal SDK中找不到指定折扣的功能,但是有机会添加负价产品

<?php

if ($discount > 0) {
    $item = new Item();
    $item->setName('Discount')
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice(number_format(-$discount, 2, '.', 0));
    $items[] = $item;
}