Paypal似乎错误地计算了我的weight_x变量,因此应用了错误的运输层。有任何想法吗? (详细而简洁)

时间:2014-09-02 02:14:49

标签: paypal paypal-sandbox shipping

就像标题所说的那样,我在使用paypal错误计算哪些等级的运费适用于我正在建立的网站购买购物车时遇到了麻烦。可以看到测试版HERE

我使用minicart.js作为第三方paypal购物车,并在其模板中使用此代码来计算weight_x变量:

<input type="hidden" name="weight_<%= idx %>" 
value="<%= precise_round(items[i].get("weight")*items[i].get("quantity"),2) %>

这只需要获取每个项目的权重,将其乘以每个项目的数量,并将其正确地应用于正确的weight_x变量。我也通过一个函数运行它,将这个数字舍入到2位小数:

function precise_round(num,decimals) {
        return Math.round(num * Math.pow(10, decimals)) / Math.pow(10, decimals);
    }

在我的示例页面中,这最终让我在我的购物车中留下了两个产品,产生了一个&#39; weight_1&#39;和&#39; weight_2&#39;变量,具有适当的值。

我知道正确计算这些值,因为我编写了一个PHP处理程序来查看$ _POST变量。它看起来像这样:

<?php 
echo "Weight_1 Value= ".$_POST["weight_1"]."<br>";
echo "Weight_2 Value= ".$_POST["weight_2"]."<br>";
?>

最后,我在paypal设置中设置了一个发货表,如下所示:

From - To(lbs)  Cost
0.01 - 0.30   =  $ 2.00
0.31 - 0.64   =  $ 3.50
0.65 - 2.80   =  $ 6.00
2.81 - 5.00   =  $ 8.00
5.01 - and up =  $10.00

在我的示例页面中,如果我的数量为1项,重量为.31lbs,数量为2项,总重量为.28lbs,我的变量看起来像这样:

weight_1 = .31
     and
weight_2 = .28

这两个变量的总和是.59lbs,而paypal正在应用6.00美元的运费。

正如您所看到的(并且应该是显而易见的),.59介于0.31和0.64之间,这将导致3.50美元的运费。事实并非如此。

我已经在沙盒和实时环境中对此进行了测试。

我的问题如下:

(1)您是否发现我的代码中发送/计算的变量与我认为发送/计算的变量不同?

(2)你知道吗?&#34;见&#34; paypal正在获得$ _POST变量?

(3)你知道吗?&#34;见&#34; paypal认为是我的weight_x变量的总和?

非常感谢您的时间,因为这是我关于堆栈溢出的第一篇文章,我希望我已经提供了足够的信息来帮助我解决问题。在我开始发布此问题之前,我花了2天时间搜索答案,在开始发布新帖子之前(在所有论坛上)始终是正确的做法。再次感谢

1 个答案:

答案 0 :(得分:0)

我试图在您的测试页面(customcart.html)上结帐,并分别添加重量为2磅和4磅的两种产品,并根据您的运输表计算10.00美元的正确运费。我也附了屏幕截图。

enter image description here