class Avangate::SOAP
Public Class Methods
add_product(options={})
click to toggle source
# File lib/avangate.rb, line 22 def self.add_product(options={}) @options = options require_session_id require_product_id response = client.call :add_product, message: add_product_params return response.body[:add_product_response][:add_product_return] end
get_product_by_code(options={})
click to toggle source
# File lib/avangate.rb, line 38 def self.get_product_by_code(options={}) @options = options require_session_id require_product_code response = client.call :get_product_by_code, message: get_product_by_code_params return response.body[:get_product_by_code_response][:get_product_by_code_return] end
login()
click to toggle source
# File lib/avangate.rb, line 13 def self.login begin response = client.call :login, message: login_params return response.body[:login_response][:login_return] rescue Savon::SOAPFault => e return false end end
set_billing_details(options={})
click to toggle source
# File lib/avangate.rb, line 30 def self.set_billing_details(options={}) @options = options require_session_id require_set_billing_details_params response = client.call :set_billing_details, message: set_billing_details_params return response.body[:set_billing_details_response][:set_billing_details_return] end
Private Class Methods
add_product_params()
click to toggle source
# File lib/avangate.rb, line 96 def self.add_product_params quantity = @options[:quantity] ? @options[:quantity] : 1 { sessionID: @options[:session_id], ProductId: @options[:product_id], Quantity: quantity } end
billing_details()
click to toggle source
# File lib/avangate.rb, line 71 def self.billing_details billing_details = {} billing_details['Address'] = @options[:address] billing_details['City'] = @options[:city] billing_details['Country'] = @options[:country] billing_details['Email'] = @options[:email] billing_details['FirstName'] = @options[:first_name] billing_details['LastName'] = @options[:last_name] billing_details['PostalCode'] = @options[:postal_code] billing_details['State'] = @options[:state] billing_details end
client()
click to toggle source
# File lib/avangate.rb, line 84 def self.client @client ||= Savon.client(wsdl: END_POINT) end
data_for_hash()
click to toggle source
# File lib/avangate.rb, line 131 def self.data_for_hash merchant_code.size.to_s + merchant_code + now.size.to_s + now.to_s end
get_product_by_code_params()
click to toggle source
# File lib/avangate.rb, line 112 def self.get_product_by_code_params { sessionID: @options[:session_id], ProductCode: @options[:product_code] } end
hash()
click to toggle source
# File lib/avangate.rb, line 135 def self.hash OpenSSL::HMAC.hexdigest OpenSSL::Digest.new('md5'), secret_key, data_for_hash end
login_params()
click to toggle source
# File lib/avangate.rb, line 88 def self.login_params { MerchantCode: merchant_code, Date: now, hash: hash } end
merchant_code()
click to toggle source
# File lib/avangate.rb, line 119 def self.merchant_code Avangate::Base.merchant_code end
now()
click to toggle source
# File lib/avangate.rb, line 123 def self.now Time.now.utc.strftime "%Y-%m-%d %H:%M:%S" end
require_product_code()
click to toggle source
# File lib/avangate.rb, line 56 def self.require_product_code raise MissingProductCode, "missing param product_code" unless @options[:product_code] end
require_product_id()
click to toggle source
# File lib/avangate.rb, line 52 def self.require_product_id raise MissingProductId, "missing param product_id" unless @options[:product_id] end
require_session_id()
click to toggle source
# File lib/avangate.rb, line 48 def self.require_session_id raise MissingSessionId, "missing param session_id" unless @options[:session_id] end
require_set_billing_details_params()
click to toggle source
# File lib/avangate.rb, line 60 def self.require_set_billing_details_params raise MissingAddress, "missing param address" unless @options[:address] raise MissingCity, "missing param city" unless @options[:city] raise MissingCountry, "missing param country" unless @options[:country] raise MissingEmail, "missing param email" unless @options[:email] raise MissingFirstName, "missing param first_name" unless @options[:first_name] raise MissingLastName, "missing param last_name" unless @options[:last_name] raise MissingPostalCode, "missing param postal_code" unless @options[:postal_code] raise MissingState, "missing param state" unless @options[:state] or !STATE_REQUIRED_COUNTRIES.include? @options[:country] end
secret_key()
click to toggle source
# File lib/avangate.rb, line 127 def self.secret_key Avangate::Base.secret_key end
set_billing_details_params()
click to toggle source
# File lib/avangate.rb, line 105 def self.set_billing_details_params { sessionID: @options[:session_id], BillingDetails: billing_details } end