module EcconnectRails::BaseModel
Constants
- CURRENCY
Public Instance Methods
check_data()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 32 def check_data @check_data ||= make_check_data end
check_signature()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 52 def check_signature cert.public_key.verify OpenSSL::Digest::SHA1.new, Base64.decode64(self.income_signature), check_data end
code()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 44 def code I18n.t "ecconnect_rails.codes.code_#{self.tran_code}" if self.tran_code end
currency()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 24 def currency I18n.t "ecconnect_rails.currency_#{self.currency_id}" end
ecconnect_json()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 48 def ecconnect_json self.as_json(except: [:income_signature, :proxy_pan, :rrn, :sd, :xid, :approval_code], methods: [:purchase_time, :signature, :code]) end
purchase_time()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 20 def purchase_time self.created_at.strftime("%Y%m%d%H%M%S%z") if self.created_at end
request_data()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 28 def request_data @request_data ||= make_request_data end
signature()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 36 def signature @signature ||= sign(request_data) end
upc_amount()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 40 def upc_amount (self.amount*100).to_i end
update_by(params)
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 56 def update_by params self.update_attributes :proxy_pan => params[:ProxyPan], :approval_code => params[:ApprovalCode], :income_signature => params[:Signature], :rrn => params[:Rrn], :xid => params[:XID], :email => params[:Email], :sd => params[:SD], :tran_code => params[:TranCode] end
Private Instance Methods
cert()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 97 def cert OpenSSL::X509::Certificate.new File.read EcconnectRails.default_options[:cert_path] end
make_check_data()
click to toggle source
MerchantId;TerminalId;PurchaseTime;OrderId,Delay;Xid;CurrencyId,AltCurrencyId;Amount,AltAmount;SessionData;TranCode;ApprovalCode;
# File lib/ecconnect_rails/base_model.rb, line 102 def make_check_data data = "" data << (self.merchant_id.nil? ? "" : "#{self.merchant_id}") data << (self.terminal_id.nil? ? ";" : ";#{self.terminal_id}") data << ";#{self.purchase_time}" data << ";#{self.order_id}" data << (self.delay.nil? ? "" : ", #{self.delay}") data << (self.xid.nil? ? ";" : ";#{self.xid}") if self.currency_id.nil? data << ";" else data << ";#{self.currency_id}" data << (self.alt_currency_id.nil? ? "" : ", #{self.alt_currency_id}") end if self.amount.nil? data << ";" else data << ";#{self.upc_amount}" data << (self.alt_amount.nil? ? "" : ", #{self.alt_amount}") end data << (self.sd.nil? ? ";" : ";#{self.sd}") data << (self.tran_code.nil? ? ";" : ";#{self.tran_code}") data << (self.approval_code.nil? ? ";" : ";#{self.approval_code}") data << ";" data end
make_request_data()
click to toggle source
MerchantId;TerminalId;PurchaseTime;OrderId,Delay;CurrencyId,AltCurrencyId;Amount,AltAmount;SessionData(SD);
# File lib/ecconnect_rails/base_model.rb, line 130 def make_request_data data = "" data << (self.merchant_id.nil? ? "" : "#{self.merchant_id}") data << (self.terminal_id.nil? ? ";" : ";#{self.terminal_id}") data << ";#{self.purchase_time}" data << ";#{self.order_id}" data << (self.delay.nil? ? "" : ", #{self.delay}") if self.currency_id.nil? data << ";" else data << ";#{self.currency_id}" data << (self.alt_currency_id.nil? ? "" : ", #{self.alt_currency_id}") end if self.amount.nil? data << ";" else data << ";#{self.upc_amount}" data << (self.alt_amount.nil? ? "" : ", #{self.alt_amount}") end data << (self.sd.nil? ? ";" : "#{;self.sd}") data << ";" data end
pem()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 93 def pem OpenSSL::PKey::RSA.new File.read EcconnectRails.default_options[:pem_path] end
set_currency_id()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 73 def set_currency_id self.currency_id = EcconnectRails.default_options[:currency_id] end
set_locale()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 69 def set_locale self.locale = I18n.locale.to_s end
set_merchant_id()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 81 def set_merchant_id self.merchant_id = EcconnectRails.default_options[:merchant_id] end
set_terminal_id()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 77 def set_terminal_id self.terminal_id = EcconnectRails.default_options[:terminal_id] end
set_tran_code()
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 85 def set_tran_code self.tran_code = nil end
sign(data)
click to toggle source
# File lib/ecconnect_rails/base_model.rb, line 89 def sign data Base64.encode64(pem.sign(OpenSSL::Digest::SHA1.new, data)).gsub(/\n/, '') end