class Rubykassa::XmlInterface
Attributes
invoice_id[RW]
language[RW]
total[RW]
Public Class Methods
new(&block)
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 11 def initialize &block instance_eval &block if block_given? end
Public Instance Methods
base_url()
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 31 def base_url "https://merchant.roboxchange.com/WebService/Service.asmx/" end
get_currencies()
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 15 def get_currencies request(base_url + transform_method_name(__method__), Hash["MerchantLogin", Rubykassa.login, "Language", @language]) end
get_payment_methods()
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 19 def get_payment_methods request(base_url + transform_method_name(__method__), Hash["MerchantLogin", Rubykassa.login, "Language", @language]) end
get_rates()
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 23 def get_rates request(base_url + transform_method_name(__method__), Hash["MerchantLogin", Rubykassa.login, "IncCurrLabel", "", "OutSum", @total.to_s, "Language", @language]) end
op_state()
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 27 def op_state request(base_url + transform_method_name(__method__), Hash["MerchantLogin", Rubykassa.login, "InvoiceID", @invoice_id.to_s, "Signature", generate_signature]) end
Private Instance Methods
generate_signature()
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 37 def generate_signature Digest::MD5.hexdigest("#{Rubykassa.login}:#{@invoice_id}:#{Rubykassa.second_password}") end
request(url, params)
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 45 def request url, params if Rubykassa.xml_http_method == :get converted_params = "?" + params.map {|key, value| "#{key}=#{value}" }.join("&") response = Net::HTTP.get_response(URI(url) + converted_params) else response = Net::HTTP.post_form(URI(url), params) end raise InvalidResponseError, "Invalid response from the service" unless response.code == "200" MultiXml.parse(response.body) end
transform_method_name(meth)
click to toggle source
# File lib/rubykassa/xml_interface.rb, line 41 def transform_method_name meth meth.to_s.split('_').map(&:capitalize).join(' ').gsub(/\s/, "") end