class OffsitePayments::Integrations::BitPay::Helper

Public Class Methods

new(order_id, account, options) click to toggle source
Calls superclass method
# File lib/offsite_payments/integrations/bit_pay.rb, line 23
def initialize(order_id, account, options)
  super
  @account = account

  add_field('posData', {'orderId' => order_id}.to_json)
  add_field('fullNotifications', true)
  add_field('transactionSpeed', 'high')
end

Public Instance Methods

form_fields() click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 55
def form_fields
  invoice = create_invoice

  raise ActionViewHelperError, "Invalid response while retrieving BitPay Invoice ID. Please try again." unless invoice

  {"id" => invoice['id']}
end
form_method() click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 51
def form_method
  "GET"
end

Private Instance Methods

create_invoice() click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 65
def create_invoice
  uri = URI.parse(BitPay.invoicing_url)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new(uri.request_uri)
  request.content_type = "application/json"
  request.body = @fields.to_json
  request.basic_auth @account, ''

  response = http.request(request)
  JSON.parse(response.body)
rescue JSON::ParserError
end