我正在尝试为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)
非常感谢任何帮助或指示。
答案 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
,所以如果你不这样做,我可以自己解决。