spree-paypal-express因"网关错误:转换缺失而失败:en.the_totals_of_the_cart_item_amounts_do_not_match_order_amounts"

时间:2012-12-10 11:07:48

标签: ruby-on-rails spree spree-paypal-express

我正在使用spree 1-2-stable,我正在使用spree-paypap-express 1-2-stable分支(尝试使用master但是再次失败)。当我尝试签出订单并选择PayPal express作为付款方式时,它会失败并显示错误:“网关错误:转换缺失:en.the_totals_of_the_cart_item_amounts_do_not_match_order_amounts”。由于某种原因,订单总额与购物车项目金额不匹配。我整个周末都花在这上面,但仍然不知道为什么会这样。

如果我包含价格>的运费,则只会出现此问题。 0(如果我将运费设置为0,则可以使用)。一旦我将运费价格更改为值> 0或某个%,它就会中断。我尝试了“包含增值税的运费”是真是假 - 同样的事情。

有什么想法吗?这是ppx中的错误还是我错过了什么?


更新时间:12/12/12

以下是我用来重现问题的值: 我使用增值税(价格中包含25%),我试图购买的商品价格为265欧元(现货无关紧要),商品数量为1,运费为15欧元(包括再次增值税)在运费价格)这是固定的订单税。

我收到订单总额与总计项目金额不匹配的错误。经过一些调试后,我发现在发送到PayPal之前确实存在差异。

为什么我的总计算错了?我正在使用1-2稳定的狂欢分支。 我的gemfile:


gem 'spree', :git => 'git://github.com/spree/spree.git', :branch => '1-2-stable'
#gem 'spree_usa_epay'
#gem 'spree_skrill'
gem 'spree_auth_devise', :github => 'spree/spree_auth_devise', :branch => '1-2-stable'
gem 'spree_paypal_express', :github => 'spree/spree_paypal_express', :branch => '1-2-stable'

我真正的问题是如何在付款步骤之前(交货步骤之后)重新计算运费和税金,以及如何覆盖计算器以便正确计算?

1 个答案:

答案 0 :(得分:12)

经过大量调试后,我发现了一些spree_paypal_express gem的错误。

  1. 如果税收为负(增值税包含在价格中并且退还给非欧盟订单),那么PayPal会因税收无效而拒绝订单
  2. 事实证明,spree_paypal_express中的送货方式是硬编码的。它总是选择插入数据库中的第一个而不是客户选择的数据库(如果您有多个运输选项,则会出现此错误)
  3. 这些问题合并导致结账问题。

    对于第一个问题,我在税收为负时设置opts[:tax] = 0,为第二个实现的逻辑设置获得选定的送货方式(具有相应的价格)而不是硬编码的。