Sha256: e92469f3c296ac9ba38b881e8fa29886896265ccb2a2e150f017dc48d9b5ae16

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

module Omnikassa
  class Response

    attr_accessor :data, :raw_data, :seal

    def initialize(params)
      self.data      = Data.unserialize(params['Data'])
      self.raw_data  = params['Data']
      self.seal      = params['Seal']
    end

    # Check of de response een geldige seal heeft
    def legit?
      Omnikassa::seal(raw_data + Omnikassa.configuration.secret_key) === seal
    end

    def success?
      response_code === '00' && legit?
    end

    # Valuta
    def currency
      Omnikassa::CURRENCY_CODES[data[:currencyCode]]
    end

    # De merchant ID.
    def merchant_id
      data[:merchantId]
    end

    # Bedrag van de transactie in centen
    def amount
      data[:amount]
    end

    def reference
      data[:transactionReference]
    end

    def response_code
      data[:responseCode]
    end

    def response
      Omnikassa::RESPONSE_CODES[response_code]
    end

    # Niet duidelijk wat dit is.
    def authorization_id
      data[:authorisationId]
    end

    # CREDIT_TRANSFER, CARD, OTHER
    def payment_type
      data[:paymentMeanType]
    end

    # IDEAL, VISA, MASTERCARD, MAESTRO, MINITIX, INCASSO, ACCEPTGIRO, REMBOURS
    def payment_service
      data[:paymentMeanBrand]
    end

    # Nog niet beschikbaar: keyVersion, orderId, complementaryCode, maskedPan
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
omnikassa-0.0.2 lib/omnikassa/response.rb
omnikassa-0.0.1.alpha lib/omnikassa/response.rb