class RubyPayler::Payler
Wrapper for payler gate api
Attributes
debug[R]
host[R]
key[R]
password[R]
payler_url[R]
Public Class Methods
new(host:, key:, password:, debug: false)
click to toggle source
# File lib/ruby_payler/payler.rb, line 8 def initialize(host:, key:, password:, debug: false) @host = host @key = key @password = password @debug = debug @payler_url = "https://#{host}.payler.com/gapi/" end
Public Instance Methods
activate_template(recurrent_template_id, active)
click to toggle source
# File lib/ruby_payler/payler.rb, line 77 def activate_template(recurrent_template_id, active) call_payler_api('ActivateTemplate', recurrent_template_id: recurrent_template_id, active: active, ) end
charge(order_id, amount)
click to toggle source
# File lib/ruby_payler/payler.rb, line 47 def charge(order_id, amount) call_payler_api('Charge', password: password, order_id: order_id, amount: amount, ) end
find_session(order_id)
click to toggle source
# File lib/ruby_payler/payler.rb, line 31 def find_session(order_id) call_payler_api('FindSession', order_id: order_id) end
get_advanced_status(order_id)
click to toggle source
# File lib/ruby_payler/payler.rb, line 43 def get_advanced_status(order_id) call_payler_api('GetAdvancedStatus', order_id: order_id) end
get_status(order_id)
click to toggle source
# File lib/ruby_payler/payler.rb, line 39 def get_status(order_id) call_payler_api('GetStatus', order_id: order_id) end
get_template(recurrent_template_id)
click to toggle source
# File lib/ruby_payler/payler.rb, line 71 def get_template(recurrent_template_id) call_payler_api('GetTemplate', recurrent_template_id: recurrent_template_id, ) end
pay_page_url(session_id)
click to toggle source
# File lib/ruby_payler/payler.rb, line 35 def pay_page_url(session_id) "#{payler_url}Pay?key=#{key}&session_id=#{session_id}" end
refund(order_id, amount)
click to toggle source
# File lib/ruby_payler/payler.rb, line 63 def refund(order_id, amount) call_payler_api('Refund', password: password, order_id: order_id, amount: amount, ) end
repeat_pay(order_id:, amount:, recurrent_template_id:)
click to toggle source
# File lib/ruby_payler/payler.rb, line 84 def repeat_pay(order_id:, amount:, recurrent_template_id:) call_payler_api('RepeatPay', order_id: order_id, amount: amount, recurrent_template_id: recurrent_template_id, ) end
retrieve(order_id, amount)
click to toggle source
# File lib/ruby_payler/payler.rb, line 55 def retrieve(order_id, amount) call_payler_api('Retrieve', password: password, order_id: order_id, amount: amount, ) end
start_session( type:, order_id:, cents:, **other_session_params )
click to toggle source
# File lib/ruby_payler/payler.rb, line 17 def start_session( type:, order_id:, cents:, **other_session_params ) call_payler_api('StartSession', type: type, order_id: order_id, amount: cents, **other_session_params, ) end
Private Instance Methods
call_payler_api(endpoint, params)
click to toggle source
# File lib/ruby_payler/payler.rb, line 98 def call_payler_api(endpoint, params) remove_nils_from_params!(params) params[:key] = key begin response = connection.post(endpoint, params) rescue Faraday::Error => faraday_error raise RubyPayler::NetworkError, faraday_error end response_body = response.body if (response_body.class != Hashie::Mash) || (response.status != 200 && !response_body.include?(:error)) raise RubyPayler::UnexpectedResponseError, response end raise RubyPayler::ResponseError, response if response_body.error response_body end
connection()
click to toggle source
# File lib/ruby_payler/payler.rb, line 94 def connection @connection ||= Connection.new(url: payler_url, key: key, debug: debug) end
remove_nils_from_params!(params)
click to toggle source
# File lib/ruby_payler/payler.rb, line 119 def remove_nils_from_params!(params) params.delete_if { |_key, value| value.nil? } end