class Fawry::FawryCallback
Attributes
callback_params[R]
fawry_secure_key[R]
options[R]
Public Class Methods
new(callback_params, opts)
click to toggle source
# File lib/fawry/fawry_callback.rb, line 9 def initialize(callback_params, opts) @callback_params = callback_params @fawry_secure_key = Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') @options = opts end
Public Instance Methods
parse()
click to toggle source
# File lib/fawry/fawry_callback.rb, line 15 def parse verify_callback_signature! build_callback self end
Private Instance Methods
build_callback()
click to toggle source
Adds keys from fawry API response as methods on FawryCallback
instance that return the value of each key
type => type referenceNumber => reference_number merchantRefNumber => merchant_ref_number expirationTime => expiration_time statusCode => status_code statusDescription => status_description
fawry_callback = FawryCallback.new
(callback_params
, fawry_secure_key
) fawry_callback.order_status => PAID fawry_callback.fawry_ref_number => 1234567
# File lib/fawry/fawry_callback.rb, line 38 def build_callback enrich_object(callback_params) end
signature()
click to toggle source
rubocop:disable Metrics/AbcSize
# File lib/fawry/fawry_callback.rb, line 47 def signature Digest::SHA256.hexdigest("#{callback_params[:fawryRefNumber]}#{callback_params[:merchantRefNum]}"\ "#{format('%<paymentAmount>.2f', paymentAmount: callback_params[:paymentAmount])}"\ "#{format('%<orderAmount>.2f', orderAmount: callback_params[:orderAmount])}"\ "#{callback_params[:orderStatus]}#{callback_params[:paymentMethod]}"\ "#{callback_params[:paymentRefrenceNumber]}#{fawry_secure_key}") end
verify_callback_signature!()
click to toggle source
# File lib/fawry/fawry_callback.rb, line 42 def verify_callback_signature! raise InvalidSignatureError, 'Invalid Signature' unless signature == callback_params[:messageSignature] end