class ActiveMerchant::Billing::EpsilonGateway
Constants
- PATHS
Public Instance Methods
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 147 def authenticate(order_number:, three_d_secure_pa_res:) params = { contract_code: self.contract_code, order_number: order_number, tds_check_code: 2, tds_pares: three_d_secure_pa_res, } commit(PATHS[:purchase], params) end
Second request for 3D secure
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 101 def cancel_recurring(user_id:, item_code:) params = { contract_code: self.contract_code, user_id: user_id, item_code: item_code, xml: 1, process_code: 8, } commit(PATHS[:cancel_recurring], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 197 def capture(order_number) params = { contract_code: self.contract_code, order_number: order_number, } commit(PATHS[:capture], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 133 def change_recurring_amount(new_item_price:, user_id:, item_code:) params = { contract_code: self.contract_code, mission_code: 2, user_id: user_id, item_code: item_code, new_item_price: new_item_price, } commit(PATHS[:change_recurring_amount], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 179 def find_order(order_number) params = { contract_code: self.contract_code, order_number: order_number, } response_keys = [ :transaction_code, :state, :last_update, :payment_code, :item_price, :amount, ] commit(PATHS[:find_order], params, response_keys) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 124 def find_user(user_id:) params = { contract_code: self.contract_code, user_id: user_id, } commit(PATHS[:find_user], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 27 def purchase(amount, credit_card, detail = {}) detail[:mission_code] = EpsilonMissionCode::PURCHASE params = billing_params(amount, credit_card, detail) if three_d_secure_2?(detail) params.merge!(detail.slice(*EpsilonRiskBaseAuthParams::KEYS).compact) end commit(PATHS[:purchase], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 68 def recurring(amount, credit_card, detail = {}) detail[:mission_code] ||= EpsilonMissionCode::RECURRING_2 requires!(detail, [:mission_code, *EpsilonMissionCode::RECURRINGS]) params = billing_params(amount, credit_card, detail) commit(PATHS[:purchase], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 39 def registered_purchase(amount, detail = {}) params = { contract_code: self.contract_code, user_id: detail[:user_id], user_name: detail[:user_name], user_mail_add: detail[:user_email], item_code: detail[:item_code], item_name: detail[:item_name], order_number: detail[:order_number], st_code: '10000-0000-0000', mission_code: EpsilonMissionCode::PURCHASE, item_price: amount, process_code: 2, card_st_code: detail[:credit_type], pay_time: detail[:payment_time], xml: 1, } params[:memo1] = detail[:memo1] if detail.has_key?(:memo1) params[:memo2] = detail[:memo2] if detail.has_key?(:memo2) params[:kari_flag] = detail[:capture] ? 2 : 1 if detail.has_key?(:capture) if three_d_secure_2?(detail) params.merge!(detail.slice(*EpsilonRiskBaseAuthParams::KEYS).compact) end commit(PATHS[:registered_purchase], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 78 def registered_recurring(amount, detail = {}) params = { contract_code: self.contract_code, user_id: detail[:user_id], user_name: detail[:user_name], user_mail_add: detail[:user_email], item_code: detail[:item_code], item_name: detail[:item_name], order_number: detail[:order_number], st_code: '10000-0000-0000', mission_code: detail[:mission_code], item_price: amount, process_code: 2, xml: 1, } params[:memo1] = detail[:memo1] if detail.has_key?(:memo1) params[:memo2] = detail[:memo2] if detail.has_key?(:memo2) params[:kari_flag] = detail[:capture] ? 2 : 1 if detail.has_key?(:capture) commit(PATHS[:registered_recurring], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 113 def terminate_recurring(user_id:) params = { contract_code: self.contract_code, user_id: user_id, xml: 1, process_code: 9, } commit(PATHS[:terminate_recurring], params) end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 167 def verify(credit_card, options = {}) o = options.dup o[:order_number] ||= "#{Time.now.to_i}#{options[:user_id]}".first(32) o[:item_code] = 'verifycreditcard' o[:item_name] = 'verify credit card' MultiResponse.run(:use_first_response) do |r| r.process { purchase(1, credit_card, o) } r.process(:ignore_result) { void(o[:order_number]) } end end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 158 def void(order_number) params = { contract_code: self.contract_code, order_number: order_number, } commit(PATHS[:void], params) end
Private Instance Methods
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 208 def billing_params(amount, payment_method, detail) params = { contract_code: self.contract_code, user_id: detail[:user_id], user_name: detail[:user_name], user_mail_add: detail[:user_email], item_code: detail[:item_code], item_name: detail[:item_name], order_number: detail[:order_number], st_code: '10000-0000-0000', mission_code: detail[:mission_code], item_price: amount, process_code: 1, card_number: payment_method.number, expire_y: payment_method.year, expire_m: payment_method.month, card_st_code: detail[:credit_type], pay_time: detail[:payment_time], tds_check_code: detail[:three_d_secure_check_code], user_agent: "#{ActiveMerchant::Epsilon}-#{ActiveMerchant::Epsilon::VERSION}", } params[:memo1] = detail[:memo1] if detail.has_key?(:memo1) params[:memo2] = detail[:memo2] if detail.has_key?(:memo2) params[:kari_flag] = detail[:capture] ? 2 : 1 if detail.has_key?(:capture) if detail.has_key?(:token) params[:token] = detail[:token] params.delete(:card_number) params.delete(:expire_y) params.delete(:expire_m) end if payment_method.class.requires_verification_value? params.merge!( security_code: payment_method.verification_value, security_check: 1, # use security code ) end params end
Source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 251 def three_d_secure_2?(detail) EpsilonRiskBaseAuthParams.three_d_secure_2?(detail[:tds_flag]) end