PayPal PHP SDK错误-项目金额总和必须达到指定金额小计

PayPal PHP SDK错误-项目金额总和必须达到指定金额小计,php,paypal,paypal-sandbox,paypal-rest-sdk,Php,Paypal,Paypal Sandbox,Paypal Rest Sdk,我使用PHP SDK从PayPal收到错误“项目金额必须合计到指定的金额小计(如果未指定金额详细信息,则合计)” 通过阅读文档,我知道当项目总数与指定的总数不匹配时,会发生此错误。除了我的情况之外,它们是加起来的 通过阅读其他答案,我知道这些项目是按每个项目计算的。i、 e项目的价格*数量,但错误仍然存在 然而,更有趣的是,这个错误发生在用户已经登录并按下“立即付款”按钮之后 以下是事务对象(作为数组): 如果运费为0.00英镑,请不要建议我删除运费,因为我已经尝试过了,如果运费>0,我仍然会收

我使用PHP SDK从PayPal收到错误“项目金额必须合计到指定的金额小计(如果未指定金额详细信息,则合计)”

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

通过阅读其他答案,我知道这些项目是按每个项目计算的。i、 e项目的价格*数量,但错误仍然存在

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

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

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

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

同样,465.40+93.08+0=558.48


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

你可能需要考虑贝宝的费用,但我不太确定

价格可能不是个别的,而是总体的,同样,我不太确定。。。复核

在PHP中,在声明数组时应省略最后一个逗号(可能是可选的,请仔细检查…PHP在错误报告方面非常宽松)

PayPal SDK的文档记录非常糟糕,使用起来也很麻烦,除非您使用非常简单的东西,比如“立即付款”html按钮。选择条带->

我解决了这个问题


单击“立即付款”按钮后,您需要重新验证付款。在第二轮,我发送了错误的金额,这是导致错误的原因。这就是为什么它发生在付款已经发送之后。

您好,感谢您的快速响应。不幸的是,我不得不完全无视你的回答。我发布的数组是对事务对象本身调用
toArray()
的结果。我实际上是在传递数字,是paypal在转换它,这使得A点和D点无效。贝宝的费用肯定没有考虑在内,我尝试使用聚合,但在登录之前就失败了。然而,我完全同意你的最后一点:P但是在这个时候使用Stripe不是一个可行的选择
    `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',
                ),
            ),
        ),
    )`