class OffsitePayments::Integrations::Latipay::QueryInterface
Public Class Methods
url(merchant_reference)
click to toggle source
# File lib/offsite_payments/integrations/latipay.rb, line 115 def self.url(merchant_reference) "#{base_url}/transaction/#{CGI.escape(merchant_reference)}" end
Public Instance Methods
call(merchant_reference)
click to toggle source
# File lib/offsite_payments/integrations/latipay.rb, line 119 def call(merchant_reference) options = { user_id: @user_id } signature = self.sign(options.merge({ merchant_reference: merchant_reference })) options[:signature] = signature raise ArgumentError, "Merchant reference must be specified" if merchant_reference.blank? url = "#{self.class.url(merchant_reference)}?#{options.to_query}" raw_response = ssl_get(url, standard_headers) parsed_response = parse_response(raw_response) validate_response(parsed_response) parsed_response end
validate_response(parsed_response)
click to toggle source
# File lib/offsite_payments/integrations/latipay.rb, line 132 def validate_response(parsed_response) raise QueryRequestError, parsed_response unless parsed_response['code'] == 0 message = "#{parsed_response['merchant_reference']}#{parsed_response['payment_method']}#{parsed_response['status']}#{parsed_response['currency']}#{parsed_response['amount']}" signature = parsed_response['signature'] raise StandardError, 'Invalid Signature in response' unless verify_signature(message, signature) end