Module: Pay::Abacatepay

Extended by:
Env
Defined in:
lib/pay/abacatepay.rb,
lib/pay/abacatepay/charge.rb,
lib/pay/abacatepay/engine.rb,
lib/pay/abacatepay/version.rb,
lib/pay/abacatepay/customer.rb,
lib/pay/abacatepay/webhooks.rb,
lib/pay/abacatepay/subscription.rb,
lib/pay/abacatepay/payment_method.rb,
lib/pay/abacatepay/webhooks/event.rb,
lib/pay/abacatepay/processed_webhook.rb,
lib/pay/abacatepay/webhooks/checkout_lost.rb,
lib/pay/abacatepay/webhooks/payout_failed.rb,
lib/pay/abacatepay/webhooks/transfer_failed.rb,
lib/pay/abacatepay/webhooks/payout_completed.rb,
lib/pay/abacatepay/webhooks/transparent_lost.rb,
lib/pay/abacatepay/webhooks/checkout_disputed.rb,
lib/pay/abacatepay/webhooks/checkout_refunded.rb,
lib/pay/abacatepay/webhooks/checkout_completed.rb,
lib/pay/abacatepay/webhooks/transfer_completed.rb,
lib/pay/abacatepay/webhooks/subscription_renewed.rb,
lib/pay/abacatepay/webhooks/transparent_disputed.rb,
lib/pay/abacatepay/webhooks/transparent_refunded.rb,
lib/pay/abacatepay/webhooks/transparent_completed.rb,
lib/pay/abacatepay/webhooks/subscription_cancelled.rb,
lib/pay/abacatepay/webhooks/subscription_completed.rb,
lib/pay/abacatepay/webhooks/subscription_trial_started.rb

Defined Under Namespace

Modules: Webhooks Classes: Charge, Customer, Engine, Error, PaymentMethod, ProcessedWebhook, Subscription

Constant Summary collapse

VERSION =
"0.1.0.pre.1"

Class Method Summary collapse

Class Method Details

.api_keyObject



60
61
62
# File 'lib/pay/abacatepay.rb', line 60

def self.api_key
  find_value_by_name(:abacatepay, :api_key)
end

.configure_webhooksObject

Registers handlers for every AbacatePay webhook event with Pay::Webhooks. Invoked by the engine’s ‘before_initialize` hook so handlers are in place before host-app initializers run.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/pay/abacatepay.rb', line 39

def self.configure_webhooks
  Pay::Webhooks.configure do |events|
    events.subscribe "abacatepay.checkout.completed", Pay::Abacatepay::Webhooks::CheckoutCompleted.new
    events.subscribe "abacatepay.checkout.refunded", Pay::Abacatepay::Webhooks::CheckoutRefunded.new
    events.subscribe "abacatepay.checkout.disputed", Pay::Abacatepay::Webhooks::CheckoutDisputed.new
    events.subscribe "abacatepay.checkout.lost", Pay::Abacatepay::Webhooks::CheckoutLost.new
    events.subscribe "abacatepay.transparent.completed", Pay::Abacatepay::Webhooks::TransparentCompleted.new
    events.subscribe "abacatepay.transparent.refunded", Pay::Abacatepay::Webhooks::TransparentRefunded.new
    events.subscribe "abacatepay.transparent.disputed", Pay::Abacatepay::Webhooks::TransparentDisputed.new
    events.subscribe "abacatepay.transparent.lost", Pay::Abacatepay::Webhooks::TransparentLost.new
    events.subscribe "abacatepay.subscription.completed", Pay::Abacatepay::Webhooks::SubscriptionCompleted.new
    events.subscribe "abacatepay.subscription.cancelled", Pay::Abacatepay::Webhooks::SubscriptionCancelled.new
    events.subscribe "abacatepay.subscription.renewed", Pay::Abacatepay::Webhooks::SubscriptionRenewed.new
    events.subscribe "abacatepay.subscription.trial_started", Pay::Abacatepay::Webhooks::SubscriptionTrialStarted.new
    events.subscribe "abacatepay.payout.completed", Pay::Abacatepay::Webhooks::PayoutCompleted.new
    events.subscribe "abacatepay.payout.failed", Pay::Abacatepay::Webhooks::PayoutFailed.new
    events.subscribe "abacatepay.transfer.completed", Pay::Abacatepay::Webhooks::TransferCompleted.new
    events.subscribe "abacatepay.transfer.failed", Pay::Abacatepay::Webhooks::TransferFailed.new
  end
end

.enabled?Boolean

Enabled when the processor is registered and the SDK constant is present.

Returns:

  • (Boolean)


23
24
25
# File 'lib/pay/abacatepay.rb', line 23

def self.enabled?
  Pay.enabled_processors.include?(:abacatepay) && defined?(::AbacatePay)
end

.environmentObject

The SDK validates this against %i[sandbox production]. The actual API version (v1/v2) is chosen by the SDK based on the token prefix (‘abc_dev_*` / `abc_live_*` → v2). Defaults to :sandbox for safety.



71
72
73
# File 'lib/pay/abacatepay.rb', line 71

def self.environment
  (find_value_by_name(:abacatepay, :environment) || "sandbox").to_sym
end

.setupObject

Configures the upstream SDK with credentials resolved from Rails credentials or environment variables. Called by the engine’s ‘to_prepare` hook.



29
30
31
32
33
34
# File 'lib/pay/abacatepay.rb', line 29

def self.setup
  ::AbacatePay.configure do |config|
    config.api_token = api_key
    config.environment = environment
  end
end

.webhook_secretObject



64
65
66
# File 'lib/pay/abacatepay.rb', line 64

def self.webhook_secret
  find_value_by_name(:abacatepay, :webhook_secret)
end