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 mirror PayWay V2: gateway_options == "<order_number>-<payment_number>".
Instance Method Details
#auto_capture? ⇒ Boolean
override: process! -> purchase! immediately (no pre-auth for ACLEDA V2)
58 59 60 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 58 def auto_capture? true end |
#available_for_order?(_order) ⇒ Boolean
override
53 54 55 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 53 def available_for_order?(_order) true end |
#cancel(_response_code, _payment = nil) ⇒ Object
override
89 90 91 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 89 def cancel(_response_code, _payment = nil) ActiveMerchant::Billing::Response.new(true, 'Acleda V2: Payment has been canceled.') end |
#card? ⇒ Boolean
24 25 26 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 24 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.
82 83 84 85 86 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 82 def check_transaction(payment) checker = Vpago::AcledaV2::TransactionStatus.new(payment) checker.call checker end |
#deeplink? ⇒ Boolean
28 29 30 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 28 def deeplink? preferred_acleda_v2_mode == 'deeplink' end |
#khqr? ⇒ Boolean
20 21 22 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 20 def khqr? preferred_acleda_v2_mode == 'khqr' end |
#method_type ⇒ Object
override: partial to render in admin
38 39 40 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 38 def method_type 'acleda_v2' end |
#payment_card_value ⇒ Object
KHQR (Scan with Bank under Bakong) = "0"; Credit/debit card = "1"
33 34 35 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 33 def payment_card_value card? ? '1' : '0' end |
#payment_profiles_supported? ⇒ Boolean
override
48 49 50 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 48 def payment_profiles_supported? false end |
#payment_source_class ⇒ Object
override
43 44 45 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 43 def payment_source_class Spree::VpagoPaymentSource end |
#purchase(_amount, _source, gateway_options = {}) ⇒ Object
override mirror PayWay V2: gateway_options == "<order_number>-<payment_number>"
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'app/models/spree/gateway/acleda_v2.rb', line 64 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 |