lib/active_merchant/billing/three_d_secure_eci_mapper.rb
module ActiveMerchant
module Billing
module ThreeDSecureEciMapper
NON_THREE_D_SECURE_TRANSACTION = :non_three_d_secure_transaction
ATTEMPTED_AUTHENTICATION_TRANSACTION = :attempted_authentication_transaction
FULLY_AUTHENTICATED_TRANSACTION = :fully_authenticated_transaction
ECI_00_01_02_MAP = { '00' => NON_THREE_D_SECURE_TRANSACTION, '01' => ATTEMPTED_AUTHENTICATION_TRANSACTION, '02' => FULLY_AUTHENTICATED_TRANSACTION }.freeze
ECI_05_06_07_MAP = { '05' => FULLY_AUTHENTICATED_TRANSACTION, '06' => ATTEMPTED_AUTHENTICATION_TRANSACTION, '07' => NON_THREE_D_SECURE_TRANSACTION }.freeze
BRAND_TO_ECI_MAP = {
american_express: ECI_05_06_07_MAP,
dankort: ECI_05_06_07_MAP,
diners_club: ECI_05_06_07_MAP,
discover: ECI_05_06_07_MAP,
elo: ECI_05_06_07_MAP,
jcb: ECI_05_06_07_MAP,
maestro: ECI_00_01_02_MAP,
master: ECI_00_01_02_MAP,
visa: ECI_05_06_07_MAP
}.freeze
def self.map(brand, eci)
BRAND_TO_ECI_MAP.dig(brand, eci)
end
end
end
end