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 36 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') add_field('token', account) end
Public Instance Methods
form_fields()
click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 69 def form_fields invoice = create_invoice raise ActionViewHelperError, "Invalid response while retrieving BitPay Invoice ID. Please try again." unless invoice { "id" => extract_invoice_id(invoice) } end
form_method()
click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 65 def form_method "GET" end
Private Instance Methods
add_plugin_info(request)
click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 78 def add_plugin_info(request) #add plugin info for v1 and v2 tokens if BitPay.v2_api_token?(@account) request.add_field("x-bitpay-plugin-info", "BitPay_AM" + application_id + "_Client_v2.0.1909") else request.add_field("x-bitpay-plugin-info", "BitPay_AM" + application_id + "_Client_v1.0.1909") request.basic_auth @account, '' end end
create_invoice()
click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 88 def create_invoice uri = URI.parse(BitPay.invoicing_url(@account)) 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 add_plugin_info(request) response = http.request(request) JSON.parse(response.body) end
extract_invoice_id(invoice)
click to toggle source
# File lib/offsite_payments/integrations/bit_pay.rb, line 102 def extract_invoice_id(invoice) if BitPay.v2_api_token?(@account) invoice['data']['id'] else invoice['id'] end end