Class: ActiveMerchant::Billing::EpsilonGateway
- Inherits:
-
EpsilonBaseGateway
- Object
- Gateway
- EpsilonBaseGateway
- ActiveMerchant::Billing::EpsilonGateway
- Defined in:
- lib/active_merchant/billing/gateways/epsilon.rb
Defined Under Namespace
Modules: CreditType
Constant Summary collapse
- PATHS =
{ purchase: 'direct_card_payment.cgi', registered_recurring: 'direct_card_payment.cgi', registered_purchase: 'direct_card_payment.cgi', cancel_recurring: 'receive_order3.cgi', terminate_recurring: 'receive_order3.cgi', void: 'cancel_payment.cgi', find_user: 'get_user_info.cgi', change_recurring_amount: 'change_amount_payment.cgi', }.freeze
Constants inherited from EpsilonBaseGateway
ActiveMerchant::Billing::EpsilonBaseGateway::DEFAULT_RESPONSE_KEYS
Instance Method Summary collapse
-
#authenticate(order_number:, three_d_secure_pa_res:) ⇒ Object
Second request for 3D secure.
- #cancel_recurring(user_id:, item_code:) ⇒ Object
- #change_recurring_amount(new_item_price:, user_id:, item_code:) ⇒ Object
- #find_user(user_id:) ⇒ Object
- #purchase(amount, credit_card, detail = {}) ⇒ Object
- #recurring(amount, credit_card, detail = {}) ⇒ Object
- #registered_purchase(amount, detail = {}) ⇒ Object
- #registered_recurring(amount, detail = {}) ⇒ Object
- #terminate_recurring(user_id:) ⇒ Object
- #verify(credit_card, options = {}) ⇒ Object
- #void(order_number) ⇒ Object
Instance Method Details
#authenticate(order_number:, three_d_secure_pa_res:) ⇒ Object
Second request for 3D secure
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 135 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:) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 89 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 |
#change_recurring_amount(new_item_price:, user_id:, item_code:) ⇒ Object
121 122 123 124 125 126 127 128 129 130 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 121 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_user(user_id:) ⇒ Object
112 113 114 115 116 117 118 119 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 112 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 = {}) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 25 def purchase(amount, credit_card, detail = {}) detail[:mission_code] = EpsilonMissionCode::PURCHASE params = billing_params(amount, credit_card, detail) commit(PATHS[:purchase], params) end |
#recurring(amount, credit_card, detail = {}) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 57 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 = {}) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 33 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) commit(PATHS[:registered_purchase], params) end |
#registered_recurring(amount, detail = {}) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 67 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) commit(PATHS[:registered_recurring], params) end |
#terminate_recurring(user_id:) ⇒ Object
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 101 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 = {}) ⇒ Object
155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 155 def verify(credit_card, = {}) o = .dup o[:order_number] ||= "#{Time.now.to_i}#{[: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) ⇒ Object
146 147 148 149 150 151 152 153 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 146 def void(order_number) params = { contract_code: self.contract_code, order_number: order_number, } commit(PATHS[:void], params) end |