module Fawry::Requests::PaymentStatusRequest
Public Instance Methods
fire_payment_status_request()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 8 def fire_payment_status_request fawry_api_response = Connection.get(request[:path], request[:params], request[:body], request[:options]) response_body = JSON.parse(fawry_api_response.body) FawryResponse.new(response_body) end
Private Instance Methods
build_payment_status_request()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 17 def build_payment_status_request { path: 'payments/status', params: payment_status_request_transformed_params, body: {}, options: options } end
fawry_merchant_code()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 38 def fawry_merchant_code Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] } end
fawry_secure_key()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 42 def fawry_secure_key Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] } end
payment_status_request_signature()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 51 def payment_status_request_signature Digest::SHA256.hexdigest("#{fawry_merchant_code}#{request_params[:merchant_ref_number]}"\ "#{fawry_secure_key}") end
payment_status_request_transformed_params()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 30 def payment_status_request_transformed_params { merchantCode: fawry_merchant_code, merchantRefNumber: request_params[:merchant_ref_number], signature: payment_status_request_signature }.compact end
request_params()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 26 def request_params @request_params = params end
validate_payment_status_params!()
click to toggle source
# File lib/fawry/requests/payment_status_request.rb, line 46 def validate_payment_status_params! contract = Contracts::PaymentStatusRequestContract.new.call(request_params) raise InvalidFawryRequestError, contract.errors.to_h if contract.failure? end