代码之家  ›  专栏  ›  技术社区  ›  Aidan Haddon-Wright

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

  •  1
  • Aidan Haddon-Wright  · 技术社区  · 7 年前

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

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

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

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

        `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

    2 回复  |  直到 6 年前
        1
  •  1
  •   Gianluca Ghettini    7 年前

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

    你可能需要考虑PayPal的费用,但我对此不太确定

    PayPal SDK的文档非常缺乏,使用起来非常麻烦,除非你做一些非常简单的事情,比如“立即付款”html按钮。选择条纹-> https://stripe.com

        2
  •  1
  •   Aidan Haddon-Wright    7 年前

    我解决了这个问题。