class OffsitePayments::Integrations::Coinbase::Notification
Public Instance Methods
acknowledge(authcode = {})
click to toggle source
Acknowledge the transaction to Coinbase
. This method has to be called after a new apc arrives. Coinbase
will verify that all the information we received are correct and will return a ok or a fail.
# File lib/offsite_payments/integrations/coinbase.rb, line 107 def acknowledge(authcode = {}) uri = URI.parse(Coinbase.notification_confirmation_url % transaction_id) response = Coinbase.do_request(uri, @options[:credential1], @options[:credential2]) return false if response.nil? posted_order = @params parse(response) return false unless @params %w(id custom total_native status).all? { |param| posted_order[param] == @params[param] } end
complete?()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 67 def complete? status == "Completed" end
currency()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 91 def currency params['total_native']['currency_iso'] end
gross()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 83 def gross if params['total_original'].present? "%.2f" % (params['total_original']['cents'].to_f / 100) else "%.2f" % (params['total_native']['cents'].to_f / 100) end end
item_id()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 71 def item_id params['custom'] end
received_at()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 79 def received_at Time.iso8601(params['created_at']).to_time.to_i end
status()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 95 def status case params['status'] when "completed" "Completed" else "Failed" end end
transaction_id()
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 75 def transaction_id params['id'] end
Private Instance Methods
parse(post)
click to toggle source
# File lib/offsite_payments/integrations/coinbase.rb, line 122 def parse(post) @raw = post.to_s @params = JSON.parse(post)['order'] rescue JSON::ParserError @params = {} end