class PaysonAPI::V1::Responses::IPN

Attributes

currency[RW]
custom[RW]
fundings[RW]
guarantee_deadline_at[RW]
guarantee_status[RW]
hash[RW]
invoice_status[RW]
order_items[RW]
payment_type[RW]
purchase_id[RW]
raw[RW]
receivers[RW]
sender_email[RW]
shipping_address[RW]
status[RW]
token[RW]
tracking_id[RW]

Public Class Methods

new(raw_data) click to toggle source
# File lib/payson_api/v1/responses/ipn.rb, line 12
def initialize(raw_data)
  @raw = raw_data
  data_hash = PaysonAPI::V1::Client.params_to_hash(raw_data)
  @purchase_id = data_hash['purchaseId']
  @payment_type = data_hash['type']
  @comment = data_hash['custom']
  @tracking_id = data_hash['trackingId']
  @currency = data_hash['currencyCode']
  @sender_email = data_hash['senderEmail']
  @status = data_hash['status']
  @token = data_hash['token']
  @fundings = PaysonAPI::V1::Funding.parse(data_hash)
  @receivers = PaysonAPI::V1::Receiver.parse(data_hash)
  @order_items = PaysonAPI::V1::OrderItem.parse(data_hash)
  @hash = data_hash['HASH']
  append_payment_type_conditionals
end

Public Instance Methods

append_payment_type_conditionals() click to toggle source
# File lib/payson_api/v1/responses/ipn.rb, line 30
def append_payment_type_conditionals
  case @payment_type
  when 'GUARANTEE'
    @guarantee_status = data_hash['guaranteeStatus']
    @guarantee_deadline_at = Time.parse(data_hash['guaranteeDeadlineTimestamp'])
  when 'INVOICE'
    @invoice_status = data_hash['invoiceStatus']
    @shipping_address = PaysonAPI::V1::ShippingAddress.parse(data_hash)
  end
end