【问题标题】:PayPal Express error "The totals of the cart item amounts do not match order amounts"PayPal Express 错误“购物车项目总金额与订单金额不匹配”
【发布时间】:2016-05-05 11:39:41
【问题描述】:

在 SO 和其他论坛上有很多关于此错误的信息,但我无法找到有帮助的答案。

当我提交以下没有税额的简化请求时,它可以工作,但是一旦添加税,就会发生错误。代码如下:

pdItem[0] = new PaymentDetailsItemType()
{
    Name = "xyz",
    Amount = new BasicAmountType() { currencyID = CurrencyCodeType.USD, Value = "10.00" },
    Tax = new BasicAmountType() { currencyID = CurrencyCodeType.USD, Value = "2.00" },
    Quantity = "1"
};

PaymentDetailsType pdt = new PaymentDetailsType()
{
    OrderDescription = orderDescription,
    PaymentDetailsItem = pdItem,
    OrderTotal = new BasicAmountType() { currencyID = CurrencyCodeType.USD, Value = "10.00" },
    TaxTotal = new BasicAmountType() { currencyID = CurrencyCodeType.USD, Value = "2.00" }
};

我尝试了税收和(净)总计的所有可能组合,但都失败了。将税款留在 pdItem[0] 和 pdt 中即可。

如果我不填写税款,只发送包括税款在内的总额,会有问题吗?如果是这样,它需要做什么才能工作?

【问题讨论】:

  • 你能看到发送到 PayPal 服务器的请求是什么(NVP 或 SOAP)吗?
  • 可以打印出来粘贴到这里吗?

标签: c# paypal paypal-sandbox


【解决方案1】:

在您的示例中,您需要包含 ItemTotal,并确保您包含包含税费和运费在内的订单总额。

  • 项目总数 = 10
  • TaxTotal = 2
  • OrderTotal = 12

不过,为了简化问题,我会省略税收。

如果您分别计算每件商品的税款和总订单价值的税款,那么您很容易受到小的舍入错误,使两者的总和相差 1 美分。

您不需要将税务信息发送到 Paypal,因此除非您的客户绝对需要,否则我会留下单独的税务信息,只发送包括税在内的所有总计。

我们已经在我们的网站上做了这件事,它简化了一些事情,它阻止了所有这些错误,每个人都很高兴。

【讨论】:

  • 谢谢;现在我觉得不用管它了 :-) 你说的对几个项目来说是有道理的,尽管我仍然不明白为什么如果你有一个项目的数量与订单中的完全相同(如硬编码中的一样)上面的例子)
  • 你是对的。在仔细查看您的代码后,我意识到您没有发送 ItemTotal 和您的 OrderTotal 不包括税。我已更新我的答案以包含此内容。
猜你喜欢
  • 2012-11-29
  • 2016-10-13
  • 2021-01-20
  • 2013-01-08
  • 2021-04-26
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多