Class: Spree::PaypalPlatform::CreatePayment
- Inherits:
-
Object
- Object
- Spree::PaypalPlatform::CreatePayment
- Defined in:
- app/services/spree/paypal_platform/create_payment.rb
Overview
Creates the Spree::Payment for a captured legacy PayPal order.
Instance Method Summary collapse
- #call ⇒ Spree::Payment
-
#initialize(paypal_order:, order: nil, gateway: nil, amount: nil) ⇒ CreatePayment
constructor
A new instance of CreatePayment.
Constructor Details
#initialize(paypal_order:, order: nil, gateway: nil, amount: nil) ⇒ CreatePayment
Returns a new instance of CreatePayment.
15 16 17 18 19 20 |
# File 'app/services/spree/paypal_platform/create_payment.rb', line 15 def initialize(paypal_order:, order: nil, gateway: nil, amount: nil) @paypal_order = paypal_order @order = order || paypal_order.order @gateway = gateway || paypal_order.gateway @amount = amount || paypal_order.amount end |
Instance Method Details
#call ⇒ Spree::Payment
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/services/spree/paypal_platform/create_payment.rb', line 25 def call source = CreateSource.new( paypal_payment_source: paypal_order.payment_source, gateway: gateway, order: order ).call payment = order.payments.find_or_initialize_by( payment_method_id: gateway.id, response_code: paypal_order.paypal_payment_id, amount: amount ) payment.source = source if source.present? payment.state = 'completed' payment.save! payment end |