class Privat24Api::Request
Attributes
card_num[R]
data_value[R]
merchant_id[R]
merchant_password[R]
Public Class Methods
new(**card_args)
click to toggle source
# File lib/privat24_api/request/request.rb, line 9 def initialize(**card_args) @card_num = card_args[:card_num] @merchant_id = card_args[:merchant_id] @merchant_password = card_args[:merchant_password] end
Public Instance Methods
get_public_data_for(mod, met, url_attr=nil)
click to toggle source
# File lib/privat24_api/request/request.rb, line 28 def get_public_data_for(mod, met, url_attr=nil) Response.new( RestClient.get(make_url(mod, met, url_attr), {content_type: 'application/x-www-form-urlencoded'}).body ) end
send_data_for(mod, met) { |xml| ... }
click to toggle source
# File lib/privat24_api/request/request.rb, line 15 def send_data_for(mod, met) builder = Nokogiri::XML::DocumentFragment.parse "" Nokogiri::XML::Builder.with(builder) do |xml| yield xml end @data_value = builder.to_xml Response.new( RestClient.post(default_url(mod, met), unescape_xml(make_xml), {content_type: 'text/xml'}).body ) end
Private Instance Methods
default_url(mod, met)
click to toggle source
# File lib/privat24_api/request/request.rb, line 36 def default_url(mod, met) URI::encode("#{Privat24Api.base_url}#{Privat24Api.end_points[mod][met]}") end
generate_signature(data, password)
click to toggle source
# File lib/privat24_api/request/request.rb, line 74 def generate_signature(data, password) Digest::SHA1.hexdigest( Digest::MD5.hexdigest(data.strip << password) ) end
make_url(mod, met, url_attr)
click to toggle source
# File lib/privat24_api/request/request.rb, line 40 def make_url(mod, met, url_attr) URI::encode(default_url(mod, met) << url_attr.to_s) end
make_xml()
click to toggle source
# File lib/privat24_api/request/request.rb, line 48 def make_xml builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml| xml.request(version: '1.0') do xml.merchant(xml_merchant(signature)) xml.data(data_value) end end builder.to_xml end
signature()
click to toggle source
# File lib/privat24_api/request/request.rb, line 70 def signature generate_signature(data_value, merchant_password) end
unescape_xml(xml)
click to toggle source
# File lib/privat24_api/request/request.rb, line 44 def unescape_xml(xml) CGI::unescapeHTML(xml) end
xml_merchant(signatur)
click to toggle source
# File lib/privat24_api/request/request.rb, line 59 def xml_merchant(signatur) builder = Nokogiri::XML::DocumentFragment.parse "" Nokogiri::XML::Builder.with(builder) do |xml| xml.id(merchant_id) xml.signature(signatur) end builder.to_xml end