class Paysbuy
Constants
- EXTERNAL_CODES
- VERSION
Attributes
biz[RW]
psb_id[RW]
secure_code[RW]
Public Class Methods
new(credentials)
click to toggle source
# File lib/paysbuy.rb, line 15 def initialize(credentials) raise ":psb_id required" unless credentials[:psb_id] raise ":biz required" unless credentials[:biz] raise ":secure_code required" unless credentials[:secure_code] self.psb_id = credentials[:psb_id] self.biz = credentials[:biz] self.secure_code = credentials[:secure_code] end
Public Instance Methods
check_status(invoice_id)
click to toggle source
# File lib/paysbuy.rb, line 25 def check_status(invoice_id) response = client.request(:get_transaction_by_invoice) do soap.body = api_required_options.merge(invoice: invoice_id) end ws_return = response.body[:get_transaction_by_invoice_response][:get_transaction_by_invoice_result][:get_transaction_by_invoice_return] result_code = ws_return[:result] amount = ws_return[:amt] status = if EXTERNAL_CODES[result_code] EXTERNAL_CODES[result_code] else :invalid end {status: status, amount: amount.to_d, response: prepare_response_for_serialize(ws_return)} rescue Net::ReadTimeout, Errno::ECONNRESET, Errno::ETIMEDOUT, Wasabi::Resolver::HTTPError, Savon::SOAP::Fault raise Paysbuy::HttpError end
Private Instance Methods
api_required_options()
click to toggle source
# File lib/paysbuy.rb, line 51 def api_required_options { psbID: psb_id, biz: biz, secureCode: secure_code } end
client()
click to toggle source
# File lib/paysbuy.rb, line 47 def client @client ||= Savon.client("http://www.paysbuy.com/psb_ws/getTransaction.asmx?WSDL") end
prepare_response_for_serialize(original)
click to toggle source
# File lib/paysbuy.rb, line 59 def prepare_response_for_serialize(original) prepared = {} original.each { |key, value| prepared[key] = value.to_s } prepared end