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', find_order: 'getsales2.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_order(order_number) ⇒ 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
136 137 138 139 140 141 142 143 144 145 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 136 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
90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 90 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
122 123 124 125 126 127 128 129 130 131 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 122 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) ⇒ Object
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 168 def find_order(order_number) params = { contract_code: self.contract_code, order_number: order_number, } response_keys = [ :transaction_code, :state, :payment_code, :item_price, ] commit(PATHS[:find_order], params, response_keys) end |
#find_user(user_id:) ⇒ Object
113 114 115 116 117 118 119 120 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 113 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
26 27 28 29 30 31 32 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 26 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
58 59 60 61 62 63 64 65 66 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 58 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
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 34 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
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 68 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
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 102 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
156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 156 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
147 148 149 150 151 152 153 154 |
# File 'lib/active_merchant/billing/gateways/epsilon.rb', line 147 def void(order_number) params = { contract_code: self.contract_code, order_number: order_number, } commit(PATHS[:void], params) end |