class ActiveMerchant::Billing::EpsilonGateway
Constants
- PATHS
- RISK_BASE_AUTH_PARAMS_KEYS
- THREE_D_SECURE_2_INDICATORS
Public Instance Methods
authenticate(order_number:, three_d_secure_pa_res:)
click to toggle source
Second request for 3D secure
# File lib/active_merchant/billing/gateways/epsilon.rb, line 161 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
cancel_recurring(user_id:, item_code:)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 115 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
capture(order_number)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 211 def capture(order_number) params = { contract_code: self.contract_code, order_number: order_number, } commit(PATHS[:capture], params) end
change_recurring_amount(new_item_price:, user_id:, item_code:)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 147 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
find_order(order_number)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 193 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
find_user(user_id:)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 138 def find_user(user_id:) params = { contract_code: self.contract_code, user_id: user_id, } commit(PATHS[:find_user], params) end
purchase(amount, credit_card, detail = {})
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 41 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(*RISK_BASE_AUTH_PARAMS_KEYS).compact) end commit(PATHS[:purchase], params) end
recurring(amount, credit_card, detail = {})
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 82 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
registered_purchase(amount, detail = {})
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 53 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(*RISK_BASE_AUTH_PARAMS_KEYS).compact) end commit(PATHS[:registered_purchase], params) end
registered_recurring(amount, detail = {})
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 92 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
terminate_recurring(user_id:)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 127 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
verify(credit_card, options = {})
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 181 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
void(order_number)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 172 def void(order_number) params = { contract_code: self.contract_code, order_number: order_number, } commit(PATHS[:void], params) end
Private Instance Methods
billing_params(amount, payment_method, detail)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 222 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
three_d_secure_2?(detail)
click to toggle source
# File lib/active_merchant/billing/gateways/epsilon.rb, line 265 def three_d_secure_2?(detail) THREE_D_SECURE_2_INDICATORS.include?(detail[:tds_flag]) end