Class: Gateway::AcledaV2
- Inherits:
-
PaymentMethod
- Object
- PaymentMethod
- Gateway::AcledaV2
- Defined in:
- app/models/spree/gateway/acleda_v2.rb
Constant Summary collapse
- MODES =
%w[khqr card deeplink].freeze
Instance Method Summary collapse
-
#auto_capture? ⇒ Boolean
override: process! -> purchase! immediately (no pre-auth for ACLEDA V2).
-
#available_for_order?(_order) ⇒ Boolean
override.
-
#cancel(_response_code, _payment = nil) ⇒ Object
override.
- #card? ⇒ Boolean
-
#check_transaction(payment) ⇒ Object
Defining check_transaction makes support_check_transaction_api? true, enabling the /vpago_payments/check_transaction poller.
- #deeplink? ⇒ Boolean
- #khqr? ⇒ Boolean
-
#method_type ⇒ Object
override: partial to render in admin.
-
#payment_card_value ⇒ Object
KHQR (Scan with Bank under Bakong) = "0"; Credit/debit card = "1".
-
#payment_profiles_supported? ⇒ Boolean
override.
-
#payment_source_class ⇒ Object
override.
-
#purchase(_amount, _source, gateway_options = {}) ⇒ Object
override.
Instance Method Details
#auto_capture? ⇒ Boolean
override: process! -> purchase! immediately (no pre-auth for ACLEDA V2)
55 56 57 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 55 def auto_capture? true end |
#available_for_order?(_order) ⇒ Boolean
override
50 51 52 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 50 def available_for_order?(_order) true end |
#cancel(_response_code, _payment = nil) ⇒ Object
override
85 86 87 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 85 def cancel(_response_code, _payment = nil) ActiveMerchant::Billing::Response.new(true, 'Acleda V2: Payment has been canceled.') end |
#card? ⇒ Boolean
21 22 23 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 21 def card? preferred_acleda_v2_mode == 'card' end |
#check_transaction(payment) ⇒ Object
Defining check_transaction makes support_check_transaction_api? true, enabling the /vpago_payments/check_transaction poller.
78 79 80 81 82 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 78 def check_transaction(payment) checker = Vpago::AcledaV2::TransactionStatus.new(payment) checker.call checker end |
#deeplink? ⇒ Boolean
25 26 27 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 25 def deeplink? preferred_acleda_v2_mode == 'deeplink' end |
#khqr? ⇒ Boolean
17 18 19 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 17 def khqr? preferred_acleda_v2_mode == 'khqr' end |
#method_type ⇒ Object
override: partial to render in admin
35 36 37 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 35 def method_type 'acleda_v2' end |
#payment_card_value ⇒ Object
KHQR (Scan with Bank under Bakong) = "0"; Credit/debit card = "1"
30 31 32 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 30 def payment_card_value card? ? '1' : '0' end |
#payment_profiles_supported? ⇒ Boolean
override
45 46 47 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 45 def payment_profiles_supported? false end |
#payment_source_class ⇒ Object
override
40 41 42 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 40 def payment_source_class Spree::VpagoPaymentSource end |
#purchase(_amount, _source, gateway_options = {}) ⇒ Object
override
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 60 def purchase(_amount, _source, = {}) _, payment_number = [:order_id].split('-') payment = Spree::Payment.find_by(number: payment_number) checker = check_transaction(payment) payment.update(transaction_response: checker.json_response) params = { check: { response: checker.json_response } } if checker.success? ActiveMerchant::Billing::Response.new(true, 'Acleda V2: Purchased', params) else ActiveMerchant::Billing::Response.new(false, 'Acleda V2: Purchasing Failed', params) end end |