class OffsitePayments::Integrations::Quickpay::Notification
Constants
- MD5_CHECK_FIELDS
Public Instance Methods
acknowledge(authcode = nil)
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 199 def acknowledge(authcode = nil) generate_md5check == params['md5check'] end
complete?()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 104 def complete? status == '000' end
currency()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 135 def currency params['currency'] end
generate_md5check()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 195 def generate_md5check Digest::MD5.hexdigest(generate_md5string) end
generate_md5string()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 191 def generate_md5string MD5_CHECK_FIELDS.map { |key| params[key.to_s] } * "" + @options[:credential2].to_s end
gross()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 123 def gross "%.2f" % (gross_cents / 100.0) end
gross_cents()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 127 def gross_cents params['amount'].to_i end
item_id()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 108 def item_id params['ordernumber'] end
parse(post)
click to toggle source
Take the posted data and move the relevant data into a hash
Calls superclass method
OffsitePayments::Notification#parse
# File lib/offsite_payments/integrations/quickpay.rb, line 204 def parse(post) # 30 + 12 #------------------------------8a827a0e6829 #Content-Disposition: form-data; name="msgtype" # #subscribe #------------------------------8a827a0e6829 #Content-Disposition: form-data; name="ordernumber" # #BILP94406 if post =~ /-{20,40}\w{6,24}/ @raw = post.to_s post.split(/-{20,40}\w{6,24}[\n\r]*/m).each do |part| part.scan(/([^\n\r]+)[\n\r]+([^\n\r]*)/m) do |header, value| if header.match(/name=["'](.*)["']/) params[$1] = value.strip end end end else super end end
received_at()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 116 def received_at time = params['time'] # If time only contains 12 integers then it's pre v5 format time = "20#{params['time']}" if /[0-9]{12}/.match(params['time']) Time.parse(time) end
status()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 131 def status params['qpstat'] end
transaction_id()
click to toggle source
# File lib/offsite_payments/integrations/quickpay.rb, line 112 def transaction_id params['transaction'] end