Class: PaymentSessions::Stripe
- Inherits:
-
PaymentSession
- Object
- PaymentSession
- PaymentSessions::Stripe
- Defined in:
- app/models/spree/payment_sessions/stripe.rb
Instance Method Summary collapse
- #accepted? ⇒ Boolean
- #charge_not_required? ⇒ Boolean
- #client_secret ⇒ Object
- #ephemeral_key_secret ⇒ Object
- #find_or_create_payment!(metadata = {}) ⇒ Object
- #stripe_charge ⇒ Object
-
#stripe_id ⇒ Object
Duck-type interface matching SpreeStripe::PaymentIntent This allows reuse of CompleteOrder and CreatePayment services.
- #stripe_payment_intent ⇒ Object
- #successful? ⇒ Boolean
Instance Method Details
#accepted? ⇒ Boolean
30 31 32 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 30 def accepted? payment_method.payment_intent_accepted?(stripe_payment_intent) end |
#charge_not_required? ⇒ Boolean
38 39 40 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 38 def charge_not_required? payment_method.payment_intent_charge_not_required?(stripe_payment_intent) end |
#client_secret ⇒ Object
11 12 13 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 11 def client_secret external_data&.dig('client_secret') end |
#ephemeral_key_secret ⇒ Object
15 16 17 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 15 def ephemeral_key_secret external_data&.dig('ephemeral_key_secret') end |
#find_or_create_payment!(metadata = {}) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 42 def find_or_create_payment!( = {}) return unless persisted? return payment if payment.present? SpreeStripe::CreatePayment.new( order: order, payment_intent: self, gateway: payment_method, amount: amount ).call end |
#stripe_charge ⇒ Object
23 24 25 26 27 28 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 23 def stripe_charge @stripe_charge ||= begin latest_charge = stripe_payment_intent.latest_charge latest_charge.present? ? payment_method.retrieve_charge(latest_charge) : nil end end |
#stripe_id ⇒ Object
Duck-type interface matching SpreeStripe::PaymentIntent This allows reuse of CompleteOrder and CreatePayment services
7 8 9 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 7 def stripe_id external_id end |
#stripe_payment_intent ⇒ Object
19 20 21 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 19 def stripe_payment_intent @stripe_payment_intent ||= payment_method.retrieve_payment_intent(external_id) end |
#successful? ⇒ Boolean
34 35 36 |
# File 'app/models/spree/payment_sessions/stripe.rb', line 34 def successful? stripe_payment_intent.status == 'succeeded' end |