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.
-
#web_order_line_item_id ⇒ Object
readonly
The primary key for identifying subscription purchases.
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.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/venice/in_app_receipt.rb', line 49 def initialize(attributes = {}) @quantity = Integer(attributes['quantity']) if attributes['quantity'] @product_id = attributes['product_id'] @transaction_id = attributes['transaction_id'] @web_order_line_item_id = attributes['web_order_line_item_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'] @is_trial_period = attributes['is_trial_period'].to_s == 'true' # expires_date is in ms since the Epoch, Time.at expects seconds if attributes['expires_date_ms'] @expires_at = Time.at(attributes['expires_date_ms'].to_i / 1000) elsif attributes['expires_date'] && is_number?(attributes['expires_date']) @expires_at = Time.at(attributes['expires_date'].to_i / 1000) end # cancellation_date is in ms since the Epoch, Time.at expects seconds @cancellation_at = Time.at(attributes['cancellation_date_ms'].to_i / 1000) if attributes['cancellation_date_ms'] 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.
34 35 36 |
# File 'lib/venice/in_app_receipt.rb', line 34 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.
47 48 49 |
# File 'lib/venice/in_app_receipt.rb', line 47 def cancellation_at @cancellation_at end |
#expires_at ⇒ Object (readonly)
For auto-renewable subscriptions, returns the date the subscription will expire
44 45 46 |
# File 'lib/venice/in_app_receipt.rb', line 44 def expires_at @expires_at end |
#original ⇒ Object
For a transaction that restores a previous transaction, this is the original receipt
41 42 43 |
# File 'lib/venice/in_app_receipt.rb', line 41 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.
27 28 29 |
# File 'lib/venice/in_app_receipt.rb', line 27 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.
38 39 40 |
# File 'lib/venice/in_app_receipt.rb', line 38 def version_external_identifier @version_external_identifier end |
#web_order_line_item_id ⇒ Object (readonly)
The primary key for identifying subscription purchases. This value is a unique ID that identifies purchase events across devices, including subscription renewal purchase events. When restoring purchase, transaction_id could change
23 24 25 |
# File 'lib/venice/in_app_receipt.rb', line 23 def web_order_line_item_id @web_order_line_item_id end |
Instance Method Details
#to_hash ⇒ Object Also known as: to_h
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/venice/in_app_receipt.rb', line 79 def to_hash { quantity: @quantity, product_id: @product_id, transaction_id: @transaction_id, web_order_line_item_id: @web_order_line_item_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, is_trial_period: @is_trial_period, expires_at: (@expires_at.httpdate rescue nil), cancellation_at: (@cancellation_at.httpdate rescue nil) } end |
#to_json ⇒ Object
97 98 99 |
# File 'lib/venice/in_app_receipt.rb', line 97 def to_json to_hash.to_json end |