Class: ItunesReceiptDecoder::Decode::UnifiedReceipt
- Defined in:
- lib/itunes_receipt_decoder/decode/unified_receipt.rb
Overview
ItunesReceiptDecoder::Decode::UnifiedReceipt
Constant Summary collapse
- RECEIPT_FIELDS =
{ 0 => :environment, 2 => :bundle_id, 3 => :application_version, 4 => :opaque_value, 5 => :sha1_hash, 12 => :creation_date, 17 => :in_app, 19 => :original_application_version, 21 => :expiration_date, 1701 => :quantity, 1702 => :product_id, 1703 => :transaction_id, 1705 => :original_transaction_id, 1704 => :purchase_date, 1706 => :original_purchase_date, 1708 => :expires_date, 1712 => :cancellation_date, 1711 => :web_order_line_item_id }.freeze
- TIMESTAMP_FIELDS =
%i(creation_date expiration_date purchase_date original_purchase_date expires_date cancellation_date).freeze
Instance Attribute Summary
Attributes inherited from Base
#environment, #options, #raw_receipt, #receipt
Instance Method Summary collapse
Methods inherited from Base
#initialize, #production?, #sandbox?
Constructor Details
This class inherits a constructor from ItunesReceiptDecoder::Decode::Base
Instance Method Details
#signature_valid? ⇒ Boolean
56 57 58 59 60 |
# File 'lib/itunes_receipt_decoder/decode/unified_receipt.rb', line 56 def signature_valid? serial = pkcs7.signers.first.serial.to_i cert = pkcs7.certificates.find { |c| c.serial.to_i == serial } cert && cert.verify(PublicKey::V3) end |
#style ⇒ Object
44 45 46 |
# File 'lib/itunes_receipt_decoder/decode/unified_receipt.rb', line 44 def style :unified end |
#uuid_valid?(uuid) ⇒ Boolean
48 49 50 51 52 53 54 |
# File 'lib/itunes_receipt_decoder/decode/unified_receipt.rb', line 48 def uuid_valid?(uuid) digest = OpenSSL::Digest::SHA1.new digest << uuid.scan(/[0-9A-F]{2}/).map(&:hex).pack('c*') digest << @receipt[:opaque_value] digest << @raw_bundle_id digest.digest == @receipt[:sha1_hash] end |