class Monza::Receipt
Attributes
adam_id[R]
app_item_id[R]
This field is not present for Mac apps
application_version[R]
bundle_id[R]
download_id[R]
expiration_date[R]
This key is present only for apps purchased through the Volume Purchase Program. If this key is not present, the receipt does not expire.
in_app[R]
original_application_version[R]
original_purchase_date[R]
original_purchase_date_ms[R]
original_purchase_date_pst[R]
receipt_creation_date[R]
receipt_creation_date_ms[R]
receipt_creation_date_pst[R]
receipt_type[R]
request_date[R]
request_date_ms[R]
request_date_pst[R]
version_external_identifier[R]
This key is not present for receipts created in the test environment.
Public Class Methods
new(attributes)
click to toggle source
# File lib/monza/receipt.rb, line 35 def initialize(attributes) @receipt_type = attributes['receipt_type'] @adam_id = attributes['adam_id'] @bundle_id = attributes['bundle_id'] @application_version = attributes['application_version'] @download_id = attributes['download_id'] @receipt_creation_date = DateTime.parse(attributes['receipt_creation_date']) rescue nil @receipt_creation_date_ms = Time.zone.at(attributes['receipt_creation_date_ms'].to_i / 1000) rescue nil @receipt_creation_date_pst = DateTime.parse(attributes['receipt_creation_date_pst'].gsub("America/Los_Angeles","PST")) rescue nil @request_date = DateTime.parse(attributes['request_date']) rescue nil @request_date_ms = Time.zone.at(attributes['request_date_ms'].to_i / 1000) rescue nil @request_date_pst = DateTime.parse(attributes['request_date_pst'].gsub("America/Los_Angeles","PST")) rescue nil @original_purchase_date = DateTime.parse(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")) @original_application_version = attributes['original_application_version'] if attributes['version_external_identifier'] @version_external_identifier = attributes['version_external_identifier'] end if attributes['app_item_id'] @app_item_id = attributes['app_item_id'] end if attributes['expiration_date'] @expires_at = Time.zone.at(attributes['expiration_date'].to_i / 1000) end @in_app = [] if attributes['in_app'] attributes['in_app'].each do |transaction_receipt_attributes| @in_app << TransactionReceipt.new(transaction_receipt_attributes) end end end
verify(data, options = {})
click to toggle source
# File lib/monza/receipt.rb, line 72 def self.verify(data, options = {}) client = Client.production begin client.verify(data, options) rescue VerificationResponse::VerificationError => error case error.code when 21007 # This receipt is from the test environment, but it was sent to the production environment for verification. Send it to the test environment instead. client = Client.development retry when 21008 # This receipt is from the production environment, but it was sent to the test environment for verification. Send it to the production environment instead. client = Client.production retry else raise error end end end