Php Paypal购物车项目总金额与使用nvp和express_checkout的订单金额不匹配

Php Paypal购物车项目总金额与使用nvp和express_checkout的订单金额不匹配,php,paypal,express-checkout,nvp,Php,Paypal,Express Checkout,Nvp,这是我用nvp和express_checkout发送给paypal的内容,但它给我的错误与订单金额不匹配,你能帮我确定我遗漏了哪一个或计算错误了吗 我读过同样问题的帖子,但仍然不知道如何从他们建议的答案中解决我的问题。先谢谢你 Array ( [METHOD] => SetExpressCheckout [SOLUTIONTYPE] => Sole [LANDINGPAGE] => Billing [ALLOWNOTE] => 0

这是我用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
)
PayPal服务器响应:

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
)

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

我想你只是错过了每一项的税额

PAYMENTREQUEST\u 0\u ITEMAMT
字段应等于不含税的每个项目金额(
L\u PAYMENTREQUEST\u 0\u AMTn
)的总和乘以数量。所以你应该

'L_PAYMENTREQUEST_0_AMT0' => 31.82,
'L_PAYMENTREQUEST_0_AMT1' => 31.82,
'PAYMENTREQUEST_0_ITEMAMT' => 63.64
PAYMENTREQUEST\u 0\u TAXAMT
是每个项目的税额(
L\u PAYMENTREQUEST\u TAXAMTn
)乘以数量的总和。您尚未指定项目税额,但假设它类似于

'L_PAYMENTREQUEST_0_TAXAMT0' => 3.18,
'L_PAYMENTREQUEST_0_TAXAMT1' => 3.18,
'PAYMENTREQUEST_0_TAXAMT' => 6.36
最后,
PAYMENTREQUEST\u 0\u AMT
PAYMENTREQUEST\u 0\u ITEMAMT
PAYMENTREQUEST\u TAXAMT
加上任何运费的总和

'PAYMENTREQUEST_0_AMT' => 70.00

谢谢@Phil,我会核对我的计算结果,我认为可以对总额征税,而不需要对项目征税。@axscode可以。我只是在看我的旧代码,这就是我通过集成测试的方法。如果您愿意,欢迎您查看它,但它与您的解决方案配合使用!非常感谢你。Phil++,只是想知道,是否有可能在paypal中将税号更改为GST?@axscode如果您要省略每项税,您仍然需要遵循我概述的计算规则,这意味着您的总金额应为76.36(或将您的项目金额更改为扣除GST金额)。我对标签不太清楚。我觉得通过PayPal卖家定制是可能的,但我从来没有打扰过Hanks,这节省了我的时间D