class PayBoutique::ResponseParser

Attributes

amount[R]
order_id[R]

Public Class Methods

new(str_xml) click to toggle source
# File lib/pay_boutique/response_parser.rb, line 5
def initialize(str_xml)
  @xml = Nokogiri::XML(str_xml)
  @order_id = @xml.xpath('//Message//Body//OrderID').text
  @amount = @xml.xpath('//Message//Body//AmountMerchantCurrency').text
end

Public Instance Methods

captured?() click to toggle source
# File lib/pay_boutique/response_parser.rb, line 27
def captured?
  status == 'captured'
end
payment_method() click to toggle source
# File lib/pay_boutique/response_parser.rb, line 31
def payment_method
  @xml.xpath('//Message//Body//PaymentMethod').text.snakecase.to_sym
end
reference_id() click to toggle source
# File lib/pay_boutique/response_parser.rb, line 23
def reference_id
  @xml.xpath('//Message//Body//ReferenceID').text
end
status() click to toggle source
# File lib/pay_boutique/response_parser.rb, line 19
def status
  @xml.xpath('//Message//Body//Status').text
end
valid?() click to toggle source
# File lib/pay_boutique/response_parser.rb, line 11
def valid?
  checksum = @xml.xpath('//Message//Header//Identity//Checksum').text
  time = @xml.xpath('//Message//Header//Time').text
  reference_id = @xml.xpath('//Message//Body//ReferenceID').text

  checksum == Signature.create(time, reference_id)
end