PayPal PHP SDK错误 - 项目金额必须添加到指定的金额小计

时间:2017-09-21 09:02:01

标签: php paypal paypal-sandbox paypal-rest-sdk

我使用PHP SDK从PayPal收到错误 "Item amount must add up to specified amount subtotal (or total if amount details not specified)"

通过阅读文档,我知道当项目总数与指定总数不匹配时会发生此错误。除了我的情况,他们确实加起来。

通过阅读其他答案,我知道这些项目是按项目计算的。即物品的价格*数量,但错误仍然存​​在。

更有趣的是,此错误发生在用户已登录并按下“立即付款”按钮之后。

这是事务对象(作为数组):

    `array (
        'amount' => array (
            'currency' => 'GBP',
            'total' => '558.48',
            'details' => array (
                'shipping' => '0',
                'tax' => '93.08',
                'subtotal' => '465.40', 
            ),
        ),
        'item_list' => array (
            'items' => array (
                0 => array (
                    'name' => 'Q-Connect Premium White A4 90gsm Inkjet Paper (500 Pack) KF01090',
                    'currency' => 'GBP',
                    'quantity' => 50,
                    'price' => '7.49',
                ),
                1 => array (
                    'name' => 'Stabilo Point 88 Fineliner Pen Black (Pack of 10 with 5 neon pens free) UK12/110-8846885',
                    'currency' => 'GBP',
                    'quantity' => 10,
                    'price' => '9.09',
                ),
            ),
        ),
    )`

请不要建议我删除运费,如果它是£0.00因为我已经尝试过,如果运费是>我仍然会收到错误0

  

对小计+运费征税。所以在这种情况下(465.40 + 0)* 1.2 = 558.48

     

同样,465.40 + 93.08 + 0 = 558.48

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。

您需要在"立即付款"之后重新验证付款。按钮已被点击。在第二轮,我发送了错误的金额,这是造成错误的原因。这就是付款已经发出后发生的原因。

答案 1 :(得分:0)

您将值作为字符串而不是数字传递。可能会出现一些舍入错误或类似的错误。尝试数字,看看会发生什么。数量正确传递为数字

您可能需要考虑PayPal费用,但我不太确定

价格可能不是个人而是汇总,再次,我不太确定......仔细检查

在PHP中,在声明数组时应该省略最后一个逗号(它可以是可选的,双重检查...... PHP在错误报告时非常松散)

PayPal SDK实际上记录非常糟糕且工作繁琐,除非您执行非常简单的操作,例如“立即付款”html按钮。去条纹 - > https://stripe.com