class OffsitePayments::Integrations::Nochex::Notification

Parser and handler for incoming Automatic Payment Confirmations from Nochex.

Public Instance Methods

acknowledge(authcode = nil) click to toggle source

Acknowledge the transaction to Nochex. This method has to be called after a new apc arrives. Nochex will verify that all the information we received are correct and will return a ok or a fail. This is very similar to the PayPal IPN scheme.

Example:

def nochex_ipn
  notify = NochexNotification.new(request.raw_post)

  if notify.acknowledge
    ... process order ... if notify.complete?
  else
    ... log possible hacking attempt ...
  end
# File lib/offsite_payments/integrations/nochex.rb, line 209
def acknowledge(authcode = nil)
   payload =  raw

   response = ssl_post(Nochex.notification_confirmation_url, payload,
     'Content-Length' => "#{payload.size}",
     'User-Agent'     => "Active Merchant -- http://activemerchant.org",
     'Content-Type'   => "application/x-www-form-urlencoded"
   )

   raise StandardError.new("Faulty Nochex result: #{response}") unless ["AUTHORISED", "DECLINED"].include?(response)

   response == "AUTHORISED"
end
complete?() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 144
def complete?
  status == 'Completed'
end
currency() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 157
def currency
  'GBP'
end
gross() click to toggle source

the money amount we received in X.2 decimal.

# File lib/offsite_payments/integrations/nochex.rb, line 182
def gross
  sprintf("%.2f", params['amount'].to_f)
end
item_id() click to toggle source

Id of the order we passed to Nochex

# File lib/offsite_payments/integrations/nochex.rb, line 149
def item_id
  params['order_id']
end
payer_email() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 169
def payer_email
  params['from_email']
end
received_at() click to toggle source

When was this payment received by the client.

# File lib/offsite_payments/integrations/nochex.rb, line 162
def received_at
  # U.K. Format: 27/09/2006 22:30:54
  return if params['transaction_date'].blank?
  time = params['transaction_date'].scan(/\d+/)
  Time.utc(time[2], time[1], time[0], time[3], time[4], time[5])
end
receiver_email() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 173
def receiver_email
  params['to_email']
end
security_key() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 177
def security_key
  params['security_key']
end
status() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 191
def status
  'Completed'
end
test?() click to toggle source

Was this a test transaction?

# File lib/offsite_payments/integrations/nochex.rb, line 187
def test?
  params['status'] == 'test'
end
transaction_id() click to toggle source
# File lib/offsite_payments/integrations/nochex.rb, line 153
def transaction_id
  params['transaction_id']
end