Я была такая же проблема, и проблема в том, что я пытался интегрироваться с Worldpay Online (не обычным старым Worldpay).
В конце концов, я создал свой собственный шлюз (очень простой только с теми параметрами мне нужно, но вы можете расширить это, чтобы добавить функциональные возможности, которые вы хотите):
class Spree::WorldpayOnlineGateway < Spree::Gateway
preference :client_key, :string
preference :service_key, :string
def provider_class
ActiveMerchant::Billing::WorldpayOnlinePaymentsGateway
end
def payment_source_class
Spree::CreditCard
end
def purchase(money, credit_card, options = {})
options[:client_key] = self.preferred_client_key
options[:service_key] = self.preferred_service_key
provider = provider_class.new(options)
provider.purchase(money, credit_card, options)
end
end
Затем в spree.rb
инициализаторе, добавить шлюз:
config = Rails.application.config
config.after_initialize do
config.spree.payment_methods << Spree::WorldpayOnlineGateway
end