Sha256: f19913edf95dff499e0b271aafb06a86954f5c13dcad5786954727cfac9a4e74
Contents?: true
Size: 1.88 KB
Versions: 1
Compression:
Stored size: 1.88 KB
Contents
# frozen_string_literal: true module SolidusNexio class AlternativePaymentMethod < Spree::PaymentMethod include NexioPaymentCommons preference(:server, :string, default: 'test') preference(:merchant_id, :string, default: nil) preference(:auth_token, :string, default: nil) preference(:payment_method, :string, default: nil) preference(:save_token, :boolean, default: false) preference(:customer_redirect, :boolean, default: false) preference(:token_domain_presence, :string, default: nil) def partial_name 'nexio_apm' end alias method_type partial_name def generate_token(options) order = Spree::Order.find_by(number: options.dig(:order, :number)) return unless order amount = order.respond_to?(:order_total_after_store_credit) ? order.order_total_after_store_credit : order.total params = { payment_method: preferred_payment_method, save_token: preferred_save_token, is_auth_only: !auto_capture? }.merge!(description_payload(order, options), request_domain_payload(options), options) gateway.generate_token(amount.to_money.cents, params) end def payment_source_class ApmSource end def try_void(payment) cancel(payment.response_code) end private def gateway_class ActiveMerchant::Billing::NexioApmGateway end def request_domain_payload(options) request_domain = options.delete(:request_domain) return {} unless request_domain && preferred_token_domain_presence.present? { payload: { data: { preferred_token_domain_presence.to_sym => request_domain } } } end def description_payload(_order, _options) { payload: { data: { description: "eComm #{preferred_payment_method} payment" } } } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
solidus_nexio-1.0.1 | app/models/solidus_nexio/alternative_payment_method.rb |