Class: OffsitePayments::Integrations::Latipay::QueryInterface
- Inherits:
-
Interface
- Object
- Interface
- OffsitePayments::Integrations::Latipay::QueryInterface
- Defined in:
- lib/offsite_payments/integrations/latipay.rb
Defined Under Namespace
Classes: QueryRequestError
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Interface
base_url, #initialize, #sign, #verify_signature
Constructor Details
This class inherits a constructor from OffsitePayments::Integrations::Latipay::Interface
Class Method Details
.url(merchant_reference) ⇒ Object
115 116 117 |
# File 'lib/offsite_payments/integrations/latipay.rb', line 115 def self.url(merchant_reference) "#{base_url}/transaction/#{CGI.escape(merchant_reference)}" end |
Instance Method Details
#call(merchant_reference) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/offsite_payments/integrations/latipay.rb', line 119 def call(merchant_reference) = { user_id: @user_id } signature = self.sign(.merge({ merchant_reference: merchant_reference })) [:signature] = signature raise ArgumentError, "Merchant reference must be specified" if merchant_reference.blank? url = "#{self.class.url(merchant_reference)}?#{.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) ⇒ Object
132 133 134 135 136 137 |
# File 'lib/offsite_payments/integrations/latipay.rb', line 132 def validate_response(parsed_response) raise QueryRequestError, parsed_response unless parsed_response['code'] == 0 = "#{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(, signature) end |