添加一个新的ActiveMerchant网关(Elavon)到Spree

时间:2012-03-09 20:21:14

标签: ruby-on-rails spree

我正在尝试为Spree实施一个新的支付网关,这是ActiveMerchant(Elavon)支持的网关。在Spree的网站上,做起来似乎很微不足道,但似乎有一个我缺失的步骤。我在/app/model/gateways/elavon.rb

中写了一个模型
class Gateway::Elavon < Gateway
      preference :login, :string
      preference :password, :string
      preference :user, :string
      def provider_class
        ActiveMerchant::Billing::ElavonGateway
      end
   end
end

我猜我错过了一些在启动时加载此网关的方法?我也相信我需要在加载时为spree设置一个特定的设置,并且似乎无法使其正常工作。

Spree::Config.set( :auto_capture, true )

我已经尝试将它放在config / application.rb中,但无济于事。

我甚至尝试过使用这个宝石:     https://github.com/baracek/spree_elavon_gateway

当我尝试启动狂欢时,我收到错误:

/home/dave/.rvm/gems/ruby-1.9.2-p290/bundler/gems/spree_elavon_gateway-802ab1e3bf31/app/models/gateway/elavon.rb:1:in `<top (required)>': wrong argument type Module (expected Class) (TypeError)

非常感谢任何帮助或指示。

2 个答案:

答案 0 :(得分:1)

我认为您的代码应该是: -

还要确保在gemfile中添加了spree_gateway gem。

module Spree
  class Gateway::Elavon < Gateway
    preference :login, :string
    preference :password, :string
    preference :user, :string

    def provider_class
      ActiveMerchant::Billing::ElavonGateway
    end
  end
end

重新读取错误,也可能是模块中的大写M导致错误,您也可以尝试将模块更改为模块

答案 1 :(得分:1)

我建议在一个fork中修复spree_elavon_gateway gem并向GitHub上的官方存储库发送一个pull请求。同时,你可以使用你的分支很好:)。我实际上计划很快使用spree_elavon_gateway,所以如果你不这样做,我可以自己解决。