Class: Spree::MollieReturnController
- Inherits:
-
BaseController
- Object
- BaseController
- Spree::MollieReturnController
- Defined in:
- app/controllers/spree/mollie_return_controller.rb
Instance Method Summary collapse
-
#process_payment_status ⇒ Object
Action which is called by the Mollie callback.
Instance Method Details
#process_payment_status ⇒ Object
Action which is called by the Mollie callback. We check if the payment is processed here and redirect accordingly
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/spree/mollie_return_controller.rb', line 7 def process_payment_status order = Spree::Order.find_by_number(params[:order_id]) payment_id = order.payments.last.response_code mollie = Spree::PaymentMethod.find_by_type("Spree::Gateway::Mollie") mollie_payment = mollie.provider.payments.get(payment_id) spree_payment = Spree::Payment.find_by_response_code(payment_id) # Translate Mollie status to Spree status and safe is to the order if mollie_payment.paid? spree_payment.complete! unless spree_payment.completed? spree_payment.order.next! unless spree_payment.order.complete? elsif mollie_payment.open? == false flash[:error] = t("payment.cancelled", {default: "Payment cancelled"}) spree_payment.failure! unless spree_payment.failed? else spree_payment.pend! unless spree_payment.pending? end redirect_to order.reload.paid? ? order_path(order) : checkout_state_path(:payment) end |