Module: Reji::PerformsCharges

Extended by:
ActiveSupport::Concern
Included in:
Billable
Defined in:
lib/reji/concerns/performs_charges.rb

Instance Method Summary collapse

Instance Method Details

#charge(amount, payment_method, options = {}) ⇒ Object

Make a “one off” charge on the customer for the given amount.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/reji/concerns/performs_charges.rb', line 8

def charge(amount, payment_method, options = {})
  options = {
    confirmation_method: 'automatic',
    confirm: true,
    currency: preferred_currency,
  }.merge(options)

  options[:amount] = amount
  options[:payment_method] = payment_method
  options[:customer] = stripe_id if stripe_id?

  payment = Payment.new(
    Stripe::PaymentIntent.create(options, stripe_options)
  )

  payment.validate

  payment
end

#refund(payment_intent, options = {}) ⇒ Object

Refund a customer for a charge.



29
30
31
32
33
34
# File 'lib/reji/concerns/performs_charges.rb', line 29

def refund(payment_intent, options = {})
  Stripe::Refund.create(
    { payment_intent: payment_intent }.merge(options),
    stripe_options
  )
end