class Przelewy24::Transaction

Attributes

amount[R]
channel[R]
client_address[R]
client_city[R]
client_name[R]
client_phone[R]
client_zip[R]
country[R]
crc[R]
currency[R]
description[R]
email[R]
encoding[R]
language[R]
merchant_id[R]
method[R]
session_id[R]
signature[R]
time_limit[R]
url_return[R]
url_status[R]
wait_for_result[R]

Public Class Methods

new(data = {}) click to toggle source
# File lib/przelewy24/transaction.rb, line 8
def initialize(data = {})
  @data ||= {}

  @session_id = data[:session_id] || generate_session_id
  @merchant_id = data[:merchant_id]
  @crc = data[:crc]
  @amount = data[:amount]
  @description = data[:description]
  @email = data[:email]
  @url_return = data[:url_return]
  @url_status = data[:url_status]
  @wait_for_result = data[:wait_for_result]
  @currency = data[:currency]
  @country = data[:country]
  @encoding = data[:encoding]
  @client_name = data[:client_name]
  @client_address = data[:client_address]
  @client_zip = data[:client_zip]
  @client_city = data[:client_city]
  @client_phone = data[:client_phone]
  @language = data[:language]
  @method = data[:method]
  @time_limit = data[:time_limit]
  @channel = data[:channel]

  @signature = calculate_signature
end

Public Instance Methods

to_data() click to toggle source
# File lib/przelewy24/transaction.rb, line 36
def to_data
  {
    p24_merchant_id: merchant_id,
    p24_pos_id: merchant_id,
    p24_session_id: session_id,
    p24_amount: amount,
    p24_currency: currency,
    p24_description: description,
    p24_email: email,
    p24_client: client_name,
    p24_address: client_address,
    p24_zip: client_zip,
    p24_city: client_city,
    p24_country: country,
    p24_phone: client_phone,
    p24_language: language,
    p24_method: method,
    p24_url_return: url_return,
    p24_url_status: url_status,
    p24_time_limit: time_limit,
    p24_wait_for_result: wait_for_result,
    p24_channel: channel,
    p24_sign: signature,
    p24_encoding: encoding,
    p24_api_version: '3.2'
  }
end

Private Instance Methods

calculate_signature() click to toggle source
# File lib/przelewy24/transaction.rb, line 66
def calculate_signature
  @signature = Digest::MD5.hexdigest([
    session_id,
    merchant_id,
    amount,
    currency,
    crc
  ].join('|'))
end
generate_session_id() click to toggle source
# File lib/przelewy24/transaction.rb, line 76
def generate_session_id
  Time.zone.now.to_i
end