class Buckaruby::SetupTransactionRequest

Request for a creating a new transaction.

Public Instance Methods

build_transaction_request_params(options) click to toggle source
# File lib/buckaruby/request.rb, line 116
def build_transaction_request_params(options)
  params = {}

  case options[:payment_method]
  when PaymentMethod::IDEAL
    params.merge!(
      brq_service_ideal_action: Action::PAY,
      brq_service_ideal_issuer: options[:payment_issuer],
      brq_service_ideal_version: "2"
    )
  when PaymentMethod::IDEAL_PROCESSING
    params.merge!(
      brq_service_idealprocessing_action: Action::PAY,
      brq_service_idealprocessing_issuer: options[:payment_issuer],
      brq_service_idealprocessing_version: "2"
    )
  when PaymentMethod::SEPA_DIRECT_DEBIT
    params.merge!(
      brq_service_sepadirectdebit_action: Action::PAY,
      brq_service_sepadirectdebit_customeriban: options[:account_iban],
      brq_service_sepadirectdebit_customeraccountname: options[:account_name]
    )

    if options[:account_bic]
      params[:brq_service_sepadirectdebit_customerbic] = options[:account_bic]
    end

    if options[:collect_date]
      params[:brq_service_sepadirectdebit_collectdate] = options[:collect_date].strftime("%Y-%m-%d")
    end

    if options[:mandate_reference]
      params.merge!(
        brq_service_sepadirectdebit_action: [Action::PAY, Action::EXTRA_INFO].join(","),
        brq_service_sepadirectdebit_mandatereference: options[:mandate_reference],
        brq_service_sepadirectdebit_mandatedate: Date.today.strftime("%Y-%m-%d")
      )
    end
  end

  params[:brq_startrecurrent] = options[:recurring] if options[:recurring]

  params
end