Интеграция платежного шлюза payu (active_merchant_payu_in) с spree

#ruby-on-rails #ruby-on-rails-3 #spree

#ruby-on-rails #ruby-on-rails-3 #веселье

Вопрос:

Я пытаюсь интегрировать payu.in платежный шлюз с помощью spree в моем приложении rails. Я включил драгоценный камень «active_merchant_payu_in» в приложение.

Мое приложение / models/spree/gateway/payu.rb выглядит так:

 module Spree
  class Gateway::Payu < Gateway
    def provider_class
      ActiveMerchant::Billing::Integrations::PayuIn
    end
  end
end
  

В application.rb

 config.after_initialize do |app|
  app.config.spree.payment_methods  = [
    Spree::Gateway::Payu
  ]
end
  

Development.rb

 config.after_initialize do
  ActiveMerchant::Billing::Base.mode = :test    
  $payu_merchant_id = ActiveMerchant::Billing::Integrations::PayuIn.merchant_id = '--ID--'
  $payu_secret_key = ActiveMerchant::Billing::Integrations::PayuIn.secret_key = '--Key--'    
end
  

Я включил Spree ::Gateway::Payu из учетных данных администратора. Теперь, когда я выполняю проверку, я получаю сообщение об ошибке ниже.

Ошибка NoMethodError в Spree ::CheckoutController#обновить неопределенный метод `авторизации» для ActiveMerchant ::Billing ::Integrations::PayuIn:Module

может кто-нибудь направить меня на правильный путь. Большое спасибо 🙂

Ответ №1:

Если кто-то все еще сталкивается с этой проблемой.

Решение: отредактируйте свой способ оплаты «Spree :: Gateway:: Payu» и установите auto_capture? для поля значение true .

Payu не поддерживает метод авторизации, который вызывается, когда для параметра «автозахват» установлено значение false , при true этом вызывается метод «покупка», который поддерживается payu.

Вы можете прочитать больше об автоматическом захвате в документации Spree. https://guides.spreecommerce.com/developer/payments.html