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