lib/monza/transaction_receipt.rb in monza-1.1.3 vs lib/monza/transaction_receipt.rb in monza-1.3.0

- old
+ new

@@ -36,13 +36,21 @@ @original_purchase_date_ms = Time.zone.at(attributes['original_purchase_date_ms'].to_i / 1000) @original_purchase_date_pst = DateTime.parse(attributes['original_purchase_date_pst'].gsub("America/Los_Angeles","PST")) if attributes['original_purchase_date_pst'] @web_order_line_item_id = attributes['web_order_line_item_id'] if attributes['expires_date'] - @expires_date = DateTime.parse(attributes['expires_date']) + begin + # Attempt to parse as RFC 3339 timestamp (new-style receipt) + @expires_date = DateTime.parse(attributes['expires_date']) + rescue + # Attempt to parse as integer ms epoch (old-style receipt) + @expires_date = Time.at(attributes['expires_date'].to_i / 1000).to_datetime + end end if attributes['expires_date_ms'] @expires_date_ms = Time.zone.at(attributes['expires_date_ms'].to_i / 1000) + elsif attributes['expires_date'] + @expires_date_ms = Time.zone.at(attributes['expires_date'].to_i / 1000) end if attributes['expires_date_pst'] @expires_date_pst = DateTime.parse(attributes['expires_date_pst'].gsub("America/Los_Angeles","PST")) end if attributes['is_trial_period']