Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PayPal Express错误“;购物车项目总金额与订单金额不匹配”;_C#_Paypal_Paypal Sandbox - Fatal编程技术网

C# PayPal Express错误“;购物车项目总金额与订单金额不匹配”;

C# PayPal Express错误“;购物车项目总金额与订单金额不匹配”;,c#,paypal,paypal-sandbox,C#,Paypal,Paypal Sandbox,在SO和其他论坛上有很多关于这个错误的信息,但是我还没有找到一个有帮助的答案 当我提交以下不含税金额的简化请求时,它可以工作,但一旦添加了税,就会出现错误。代码如下: pdItem[0] = new PaymentDetailsItemType() { Name = "xyz", Amount = new BasicAmountType() { currencyID = CurrencyCodeType.USD, Value = "10.00" }, Tax = new

在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中不包含该税,它就会起作用


如果我不用交税,只发送包括税在内的总额,这有问题吗?如果是这样的话,需要做些什么才能使其工作?

在您的示例中,您需要包括ItemTotal,并确保您包括订单总额,包括税费和交货

  • 项目总数=10
  • TaxTotal=2
  • 订单总数=12
然而,为了简化事情,我会将税收排除在外

如果你分别计算每个项目的税和订单总价值的税,那么你很容易受到小的舍入误差的影响,使两个总额相差1美分

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


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

你能看到发送到PayPal服务器的请求(NVP或SOAP)是什么吗?你能打印并粘贴到这里吗?谢谢;现在我觉得不必再提了:-)你说的对几个项目都有意义,尽管我仍然不太明白为什么如果你有一个项目的数量与订单中的数量完全相同(如上面硬编码的例子),那么你是对的。在仔细查看您的代码后,我意识到您没有发送和ItemTotal,并且您的OrderTotal不包括税。我已经更新了我的答案,包括这一点。