class OffsitePayments::Integrations::MollieIdeal::Helper

Attributes

redirect_parameters[R]
token[R]
transaction_id[R]

Public Class Methods

new(order, account, options = {}) click to toggle source
Calls superclass method
# File lib/offsite_payments/integrations/mollie_ideal.rb, line 67
def initialize(order, account, options = {})
  @token = account
  @redirect_parameters = {
    :amount => options[:amount],
    :description => options[:description],
    :issuer => options[:redirect_param],
    :redirectUrl => options[:return_url],
    :method => 'ideal',
    :metadata => { :order => order }
  }

  @redirect_parameters[:webhookUrl] = options[:notify_url] if options[:notify_url]

  super

  raise ArgumentError, "The redirect_param option needs to be set to the bank_id the customer selected." if options[:redirect_param].blank?
  raise ArgumentError, "The return_url option needs to be set." if options[:return_url].blank?
  raise ArgumentError, "The description option needs to be set." if options[:description].blank?
end

Public Instance Methods

request_redirect() click to toggle source
# File lib/offsite_payments/integrations/mollie_ideal.rb, line 87
def request_redirect
  MollieIdeal.create_payment(token, redirect_parameters)
rescue ActiveUtils::ResponseError => e
  case e.response.code
  when '401', '403', '422'
    error = JSON.parse(e.response.body)['error']['message']
    raise ActionViewHelperError, error
  when '503'
    raise ActionViewHelperError, 'Service temporarily unavailable. Please try again.'
  else
    raise
  end
end