lib/offsite_payments/return.rb
module OffsitePayments #:nodoc:
class Return
attr_accessor :params
attr_reader :notification
def initialize(query_string, options = {})
@params = parse(query_string)
@options = options
end
# Successful by default. Overridden in the child class
def success?
true
end
# Not cancelled by default. Overridden in the child class.
def cancelled?
false
end
def message
end
def parse(query_string)
return {} if query_string.blank?
query_string.split('&').inject({}) do |memo, chunk|
next if chunk.empty?
key, value = chunk.split('=', 2)
next if key.empty?
value = value.nil? ? nil : CGI.unescape(value)
memo[CGI.unescape(key)] = value
memo
end
end
end
end