class Monza::TransactionReceipt

Attributes

cancellation_date[R]
cancellation_date_ms[R]
cancellation_date_pst[R]
cancellation_reason[R]
expires_date[R]
expires_date_ms[R]
expires_date_pst[R]
is_in_intro_offer_period[R]
is_trial_period[R]
original_attributes[R]
original_purchase_date[R]
original_purchase_date_ms[R]
original_purchase_date_pst[R]
original_transaction_id[R]
product_id[R]
purchase_date[R]
purchase_date_ms[R]
purchase_date_pst[R]
transaction_id[R]
web_order_line_item_id[R]

Public Class Methods

new(attributes) click to toggle source
# File lib/monza/transaction_receipt.rb, line 34
def initialize(attributes)
  @original_attributes = attributes
  @quantity = attributes['quantity'].to_i
  @product_id = attributes['product_id']
  @transaction_id = attributes['transaction_id']
  @original_transaction_id = attributes['original_transaction_id']
  @purchase_date = DateTime.parse(attributes['purchase_date']) if attributes['purchase_date']
  @purchase_date_ms = Time.zone.at(attributes['purchase_date_ms'].to_i / 1000)
  @purchase_date_pst = DateTime.parse(attributes['purchase_date_pst'].gsub("America/Los_Angeles","PST")) if attributes['purchase_date_pst']
  @original_purchase_date = DateTime.parse(attributes['original_purchase_date']) if attributes['original_purchase_date']
  @original_purchase_date_ms = Time.zone.at(attributes['original_purchase_date_ms'].to_i / 1000)
  @original_purchase_date_pst = DateTime.parse(attributes['original_purchase_date_pst'].gsub("America/Los_Angeles","PST")) if attributes['original_purchase_date_pst']
  @web_order_line_item_id = attributes['web_order_line_item_id']
  @cancellation_reason = attributes['cancellation_reason'] if attributes['cancellation_reason']
  @cancellation_date = DateTime.parse(attributes['cancellation_date']) if attributes['cancellation_date']
  @cancellation_date_ms = Time.zone.at(attributes['cancellation_date_ms'].to_i / 1000) if attributes['cancellation_date_ms']
  @cancellation_date_pst = DateTime.parse(attributes['cancellation_date_pst'].gsub("America/Los_Angeles","PST")) if attributes['cancellation_date_pst']

  if attributes['expires_date']
    begin
      # Attempt to parse as RFC 3339 timestamp (new-style receipt)
      @expires_date = DateTime.parse(attributes['expires_date'])
    rescue
      # Attempt to parse as integer ms epoch (old-style receipt)
      @expires_date = Time.at(attributes['expires_date'].to_i / 1000).to_datetime
    end
  end
  if attributes['expires_date_ms']
    @expires_date_ms = Time.zone.at(attributes['expires_date_ms'].to_i / 1000)
  elsif attributes['expires_date']
    @expires_date_ms = Time.zone.at(attributes['expires_date'].to_i / 1000)
  end
  if attributes['expires_date_pst']
    @expires_date_pst = DateTime.parse(attributes['expires_date_pst'].gsub("America/Los_Angeles","PST"))
  end
  if attributes['is_trial_period']
    @is_trial_period = attributes['is_trial_period'].to_bool
  end
  if attributes['is_in_intro_offer_period']
    @is_in_intro_offer_period = attributes['is_in_intro_offer_period'].to_bool
  end
end