Class: Venice::InAppReceipt
- Inherits:
-
Object
- Object
- Venice::InAppReceipt
- Defined in:
- lib/venice/in_app_receipt.rb
Instance Attribute Summary collapse
-
#app_item_id ⇒ Object
readonly
A string that the App Store uses to uniquely identify the application that created the payment transaction.
-
#cancellation_at ⇒ Object
readonly
For a transaction that was canceled by Apple customer support, the time and date of the cancellation.
-
#expires_at ⇒ Object
readonly
For auto-renewable subscriptions, returns the date the subscription will expire.
-
#original ⇒ Object
For a transaction that restores a previous transaction, this is the original receipt.
-
#product_id ⇒ Object
readonly
The product identifier of the item that was purchased.
-
#purchased_at ⇒ Object
readonly
The date and time this transaction occurred.
-
#quantity ⇒ Object
readonly
The number of items purchased.
-
#transaction_id ⇒ Object
readonly
The transaction identifier of the item that was purchased.
-
#version_external_identifier ⇒ Object
readonly
An arbitrary number that uniquely identifies a revision of your application.
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ InAppReceipt
constructor
A new instance of InAppReceipt.
- #to_hash ⇒ Object (also: #to_h)
- #to_json ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ InAppReceipt
Returns a new instance of InAppReceipt.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/venice/in_app_receipt.rb', line 46 def initialize(attributes = {}) @quantity = Integer(attributes['quantity']) if attributes['quantity'] @product_id = attributes['product_id'] @transaction_id = attributes['transaction_id'] @purchased_at = DateTime.parse(attributes['purchase_date']) if attributes['purchase_date'] @app_item_id = attributes['app_item_id'] @version_external_identifier = attributes['version_external_identifier'] @expires_at = Time.at(attributes['expires_date_ms'].to_i/1000) if attributes['expires_date_ms'] # cancellation_date is in ms since the Epoch, Time.at expects seconds @cancellation_date = Time.at(attributes['cancellation_date'].to_i / 1000) if attributes['cancellation_date'] if attributes['original_transaction_id'] || attributes['original_purchase_date'] original_attributes = { 'transaction_id' => attributes['original_transaction_id'], 'purchase_date' => attributes['original_purchase_date'] } self.original = InAppReceipt.new(original_attributes) end end |
Instance Attribute Details
#app_item_id ⇒ Object (readonly)
A string that the App Store uses to uniquely identify the application that created the payment transaction. If your server supports multiple applications, you can use this value to differentiate between them. Applications that are executing in the sandbox do not yet have an app-item-id assigned to them, so this key is missing from receipts created by the sandbox.
30 31 32 |
# File 'lib/venice/in_app_receipt.rb', line 30 def app_item_id @app_item_id end |
#cancellation_at ⇒ Object (readonly)
For a transaction that was canceled by Apple customer support, the time and date of the cancellation.
43 44 45 |
# File 'lib/venice/in_app_receipt.rb', line 43 def cancellation_at @cancellation_at end |
#expires_at ⇒ Object (readonly)
For auto-renewable subscriptions, returns the date the subscription will expire
40 41 42 |
# File 'lib/venice/in_app_receipt.rb', line 40 def expires_at @expires_at end |
#original ⇒ Object
For a transaction that restores a previous transaction, this is the original receipt
37 38 39 |
# File 'lib/venice/in_app_receipt.rb', line 37 def original @original end |
#product_id ⇒ Object (readonly)
The product identifier of the item that was purchased. This value corresponds to the productIdentifier property of the SKPayment object stored in the transaction’s payment property.
15 16 17 |
# File 'lib/venice/in_app_receipt.rb', line 15 def product_id @product_id end |
#purchased_at ⇒ Object (readonly)
The date and time this transaction occurred. This value corresponds to the transaction’s transactionDate property.
23 24 25 |
# File 'lib/venice/in_app_receipt.rb', line 23 def purchased_at @purchased_at end |
#quantity ⇒ Object (readonly)
The number of items purchased. This value corresponds to the quantity property of the SKPayment object stored in the transaction’s payment property.
10 11 12 |
# File 'lib/venice/in_app_receipt.rb', line 10 def quantity @quantity end |
#transaction_id ⇒ Object (readonly)
The transaction identifier of the item that was purchased. This value corresponds to the transaction’s transactionIdentifier property.
19 20 21 |
# File 'lib/venice/in_app_receipt.rb', line 19 def transaction_id @transaction_id end |
#version_external_identifier ⇒ Object (readonly)
An arbitrary number that uniquely identifies a revision of your application. This key is missing in receipts created by the sandbox.
34 35 36 |
# File 'lib/venice/in_app_receipt.rb', line 34 def version_external_identifier @version_external_identifier end |
Instance Method Details
#to_hash ⇒ Object Also known as: to_h
69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/venice/in_app_receipt.rb', line 69 def to_hash { :quantity => @quantity, :product_id => @product_id, :transaction_id => @transaction_id, :purchase_date => (@purchased_at.httpdate rescue nil), :original_transaction_id => (@original.transaction_id rescue nil), :original_purchase_date => (@original.purchased_at.httpdate rescue nil), :app_item_id => @app_item_id, :version_external_identifier => @version_external_identifier, :expires_at => (@expires_at.httpdate rescue nil), :cancellation_at => (@cancellation_at.httpdate rescue nil) } end |
#to_json ⇒ Object
85 86 87 |
# File 'lib/venice/in_app_receipt.rb', line 85 def to_json self.to_hash.to_json end |