Class: ItunesReceiptValidator::Receipt

Inherits:
Object
  • Object
show all
Defined in:
lib/itunes_receipt_validator/receipt.rb

Overview

ItunesReceiptValidator::Receipt

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(receipt, options = {}) {|_self| ... } ⇒ Receipt

Returns a new instance of Receipt.

Yields:

  • (_self)

Yield Parameters:



10
11
12
13
14
15
16
# File 'lib/itunes_receipt_validator/receipt.rb', line 10

def initialize(receipt, options = {})
  @receipt = receipt
  @shared_secret = options.fetch(:shared_secret, nil)
  @request_method = options.fetch(:request_method, nil)
  local
  yield self if block_given?
end

Instance Attribute Details

#receiptObject (readonly)

Returns the value of attribute receipt.



7
8
9
# File 'lib/itunes_receipt_validator/receipt.rb', line 7

def receipt
  @receipt
end

#request_methodObject

Returns the value of attribute request_method.



8
9
10
# File 'lib/itunes_receipt_validator/receipt.rb', line 8

def request_method
  @request_method
end

#shared_secretObject

Returns the value of attribute shared_secret.



8
9
10
# File 'lib/itunes_receipt_validator/receipt.rb', line 8

def shared_secret
  @shared_secret
end

Instance Method Details

#bundle_idObject



18
19
20
# File 'lib/itunes_receipt_validator/receipt.rb', line 18

def bundle_id
  @bundle_id = local.receipt.fetch(style == :unified ? :bundle_id : :bid)
end

#environmentObject



44
45
46
# File 'lib/itunes_receipt_validator/receipt.rb', line 44

def environment
  @environment ||= local.environment
end

#latest_receiptObject



34
35
36
# File 'lib/itunes_receipt_validator/receipt.rb', line 34

def latest_receipt
  @latest_receipt = remote.json.fetch :latest_receipt
end

#latest_transactionsObject



28
29
30
31
32
# File 'lib/itunes_receipt_validator/receipt.rb', line 28

def latest_transactions
  @latest_transactions = TransactionsProxy.import(
    remote_transactions_source, self
  )
end

#localObject



38
39
40
41
42
# File 'lib/itunes_receipt_validator/receipt.rb', line 38

def local
  @local ||= ItunesReceiptDecoder.new receipt, expand_timestamps: true
rescue ItunesReceiptDecoder::DecodingError => e
  raise LocalDecodingError, e.message
end

#production?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/itunes_receipt_validator/receipt.rb', line 48

def production?
  environment == :production
end

#remoteObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/itunes_receipt_validator/receipt.rb', line 60

def remote
  return @remote if @remote
  instance = Remote.new(receipt) do |remote|
    remote.shared_secret = shared_secret
    remote.sandbox = sandbox?
    remote.request_method = request_method if request_method
  end

  if instance.status == 21_007
    @environment = :sandbox
    remote
  elsif instance.status == 21_008
    @environment = :production
    remote
  else
    @remote = instance
  end
end

#sandbox?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/itunes_receipt_validator/receipt.rb', line 52

def sandbox?
  !production?
end

#styleObject



56
57
58
# File 'lib/itunes_receipt_validator/receipt.rb', line 56

def style
  local.style
end

#transactionsObject



22
23
24
25
26
# File 'lib/itunes_receipt_validator/receipt.rb', line 22

def transactions
  @transactions = TransactionsProxy.import(
    local_transactions_source, self
  )
end