Class: Kakeibo::Client::Receipt::Iap
- Inherits:
-
Object
- Object
- Kakeibo::Client::Receipt::Iap
- Defined in:
- lib/kakeibo/client/receipt/iap.rb
Constant Summary collapse
- VALID_RECEIPT =
0
- INVALID_JSON =
1
- IS_SANDBOX_STATUS =
21007
Instance Attribute Summary collapse
-
#receipt_data ⇒ Object
readonly
Returns the value of attribute receipt_data.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
Instance Method Summary collapse
- #error ⇒ Object
-
#initialize(raw_receipt_data, option = {}) ⇒ Iap
constructor
A new instance of Iap.
- #valid? ⇒ Boolean
Constructor Details
#initialize(raw_receipt_data, option = {}) ⇒ Iap
Returns a new instance of Iap.
15 16 17 18 19 20 21 |
# File 'lib/kakeibo/client/receipt/iap.rb', line 15 def initialize(raw_receipt_data, option={}) @raw_receipt_data = raw_receipt_data @receipt_data = nil @transaction_id = option[:transaction_id] @status = nil valid? end |
Instance Attribute Details
#receipt_data ⇒ Object (readonly)
Returns the value of attribute receipt_data.
13 14 15 |
# File 'lib/kakeibo/client/receipt/iap.rb', line 13 def receipt_data @receipt_data end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
12 13 14 |
# File 'lib/kakeibo/client/receipt/iap.rb', line 12 def status @status end |
Instance Method Details
#error ⇒ Object
41 42 43 44 |
# File 'lib/kakeibo/client/receipt/iap.rb', line 41 def error return nil if valid? Kakeibo::Error.new(@status, ) end |
#valid? ⇒ Boolean
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/kakeibo/client/receipt/iap.rb', line 23 def valid? begin @receipt_data ||= JSON.parse(@raw_receipt_data, symbolize_names: true) rescue JSON::ParserError => e @status = INVALID_JSON return false end @status = @receipt_data[:status] return false if @status != VALID_RECEIPT return true if @transaction_id.nil? if ios7?(@receipt_data) @receipt_data[:receipt][:in_app].one? { |r| r[:transaction_id] == @transaction_id } else @receipt_data[:receipt][:transaction_id] == @transaction_id end end |