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

Pav*_*lov 13 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,运费为15EUR(再次增值税包含在运费中)这是固定订单税.

我收到订单总数与总计项目金额不匹配的错误.经过一些调试后,我发现在发送到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'

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

Pav*_*lov 12

经过大量的调试后,我发现了一些spree_paypal_express gem的bug.

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

这些问题加在一起导致结账问题.

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