【问题标题】:Paypal the totals of the cart item amounts do not match order amounts using nvp with express_checkoutPaypal 购物车项目总金额与使用 nvp 和 express_checkout 的订单金额不匹配
【发布时间】:2015-11-17 09:06:41
【问题描述】:

这是我使用 nvp 和 express_checkout 发送到 paypal 的,但它给了我错误与订单金额不匹配,你能帮我看看我遗漏了哪个或计算错误吗?

我已经阅读了同样问题的帖子,但仍然不知道如何从他们建议的答案中解决我的问题。提前谢谢你。

Array
(
    [METHOD] => SetExpressCheckout
    [SOLUTIONTYPE] => Sole
    [LANDINGPAGE] => Billing
    [ALLOWNOTE] => 0
    [PAYMENTREQUEST_0_PAYMENTACTION] => Sale
    [PAYMENTREQUEST_0_AMT] => 70.00
    [PAYMENTREQUEST_0_CURRENCYCODE] => AUD
    [PAYMENTREQUEST_0_INVNUM] => 124-1440383961
    [RETURNURL] => http://mysite.here/checkout/124/payment/return/I2Ir45QRcKkACL__OFbNrNjc8cL9Iajr0UU1LzXesWA
    [CANCELURL] => http://mysite.here/checkout/124/payment/back/I2Ir45QRcKkACL__OFbNrNjc8cL9Iajr0UU1LzXesWA
    [L_PAYMENTREQUEST_0_NAME0] => Babbling Brook - 7min Loop
    [L_PAYMENTREQUEST_0_AMT0] => 35.00
    [L_PAYMENTREQUEST_0_QTY0] => 1
    [L_PAYMENTREQUEST_0_NUMBER0] => babblingbrook-7minloop
    [L_PAYMENTREQUEST_0_NAME1] => Crackling Fire - 7min Loop
    [L_PAYMENTREQUEST_0_AMT1] => 35.00
    [L_PAYMENTREQUEST_0_QTY1] => 1
    [L_PAYMENTREQUEST_0_NUMBER1] => cracklingfire-7minloop
    [PAYMENTREQUEST_0_ITEMAMT] => 63.64
    [PAYMENTREQUEST_0_TAXAMT] => 6.36
    [NOSHIPPING] => 1
    [USER] => myusernamehere
    [PWD] => ANDPASSWORDHERE
    [SIGNATURE] => A.bIs5s0FCBv.KdshBEZ.0y1BshsBr9
    [VERSION] => 76.0
)

贝宝服务器响应:

Array
(
    [TIMESTAMP] => 2015-08-24T02:20:54Z
    [CORRELATIONID] => 7b10ddf49b4c1
    [ACK] => Failure
    [VERSION] => 76.0
    [BUILD] => 000000
    [L_ERRORCODE0] => 10413
    [L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details.
    [L_LONGMESSAGE0] => The totals of the cart item amounts do not match order amounts.
    [L_SEVERITYCODE0] => Error
)

【问题讨论】:

    标签: php paypal express-checkout nvp


    【解决方案1】:

    我上次玩这个时使用的是 API 版本 113(现在已经有一年多了)。

    我认为您真的只是错过了每件商品的税额。

    PAYMENTREQUEST_0_ITEMAMT 字段应等于每件商品的不含税金额 (L_PAYMENTREQUEST_0_AMTn) 的总和乘以数量。所以你应该有

    'L_PAYMENTREQUEST_0_AMT0' => 31.82,
    'L_PAYMENTREQUEST_0_AMT1' => 31.82,
    'PAYMENTREQUEST_0_ITEMAMT' => 63.64
    

    PAYMENTREQUEST_0_TAXAMT 是每个项目的税额 (L_PAYMENTREQUEST_0_TAXAMTn) 乘以数量的总和。您尚未指定项目税额,但假设它类似于

    'L_PAYMENTREQUEST_0_TAXAMT0' => 3.18,
    'L_PAYMENTREQUEST_0_TAXAMT1' => 3.18,
    'PAYMENTREQUEST_0_TAXAMT' => 6.36
    

    最后,PAYMENTREQUEST_0_AMTPAYMENTREQUEST_0_ITEMAMTPAYMENTREQUEST_0_TAXAMT 加上任何运费的总和

    'PAYMENTREQUEST_0_AMT' => 70.00
    

    【讨论】:

    • 谢谢@Phil,我会检查我的计算,我认为可以对总计征税并且不需要对项目。
    • @axscode 它可能是。我只是在查看我的旧代码,这就是我通过集成测试获得它的方式。喜欢的话欢迎来看看
    • 但它适用于您的解决方案!非常感谢。 Phil++++,只是想知道,是否可以在 paypal 中将 TAX 标签更改为 GST?
    • @axscode 如果您要省略每件商品税,您仍然需要遵循我概述的计算规则,这意味着您的总金额应为 76.36(或将您的商品金额更改为前消费税金额)。我不确定标签。我觉得可以通过 PayPal 卖家定制来实现,但我从来没有打扰过
    • 非常感谢,这节省了我的时间。 :D
    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 2021-01-20
    • 2013-01-08
    • 2012-05-21
    • 1970-01-01
    • 2016-05-05
    • 2016-10-13
    相关资源
    最近更新 更多