class AtPay::Hook

Public Class Methods

new(session, details, signature) click to toggle source
# File lib/atpay/hook.rb, line 6
def initialize(session, details, signature)
  @session   = session
  @details   = details
  @signature = signature

  verify_signature!
  verify_success!
end

Public Instance Methods

details() click to toggle source
# File lib/atpay/hook.rb, line 15
def details
  MultiJson.load(@details)
end

Private Instance Methods

verify_signature!() click to toggle source
# File lib/atpay/hook.rb, line 20
def verify_signature!
  unless OpenSSL::HMAC.hexdigest('sha1', @session.private_key, @details) == @signature
    raise InvalidSignatureError
  end
end
verify_success!() click to toggle source
# File lib/atpay/hook.rb, line 26
def verify_success!
  if @details['type'] == 'error'
    raise Error.new(@details['error'])
  elsif @details['type'] == 'fatal'
    raise FatalError.new(@details['error'])
  end
end