class Ios::Receipt::Receipt
Attributes
app_item_id[R]
cancellation_date[R]
expires_date[R]
is_trial_period[R]
original_purchase_date[R]
original_transaction_id[R]
product_id[R]
purchase_date[R]
quantity[R]
transaction_id[R]
version_external_identifier[R]
web_order_line_item_id[R]
Public Class Methods
new(receipt_hash)
click to toggle source
# File lib/ios/receipt/receipt.rb, line 6 def initialize(receipt_hash) @quantity = receipt_hash['quantity'] @product_id = receipt_hash['product_id'] @original_transaction_id = receipt_hash['original_transaction_id'] @transaction_id = receipt_hash['transaction_id'] @original_purchase_date = parse_time receipt_hash['original_purchase_date'] @purchase_date = parse_time receipt_hash['purchase_date'] @expires_date = parse_time receipt_hash['expires_date'] @cancellation_date = parse_time receipt_hash['cancellation_date'] @app_item_id = receipt_hash['app_item_id'] @version_external_identifier = receipt_hash['version_external_identifier'] @web_order_line_item_id = receipt_hash['web_order_line_item_id'] @is_trial_period = receipt_hash['is_trial_period'] == 'true' end
Public Instance Methods
active?()
click to toggle source
# File lib/ios/receipt/receipt.rb, line 29 def active? !cancelled? && !expired? end
cancelled?()
click to toggle source
# File lib/ios/receipt/receipt.rb, line 38 def cancelled? !@cancellation_date.nil? end
expired?()
click to toggle source
# File lib/ios/receipt/receipt.rb, line 33 def expired? return false unless recurring? !!(@expires_date && @expires_date < Time.now) end
in_trial?()
click to toggle source
# File lib/ios/receipt/receipt.rb, line 42 def in_trial? @is_trial_period end
once_off?()
click to toggle source
# File lib/ios/receipt/receipt.rb, line 21 def once_off? @expires_date.nil? end
recurring?()
click to toggle source
# File lib/ios/receipt/receipt.rb, line 25 def recurring? !once_off? end
Private Instance Methods
parse_time(str)
click to toggle source
# File lib/ios/receipt/receipt.rb, line 48 def parse_time(str) return nil if str.nil? || str == '' if !str.match(/^[0-9]+$/).nil? # It's in number format Time.at(str.to_i / 1000) else # They've sent it in string format Time.parse(str.sub('Etc/GMT', 'GMT')) rescue nil end end