Sha256: 42e76b28e9ec98fe3578454a2114b438944a27f378f94bc5d44de9125429ac81
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
# frozen_string_literal: true module SolidusAfterpay class CheckoutsController < SolidusAfterpay.api_base_controller_parent_class def create authorize! :update, order, order_token response = payment_method.gateway.create_checkout( order, redirect_confirm_url: redirect_confirm_url, redirect_cancel_url: redirect_cancel_url, mode: params[:mode], popup_origin_url: request.referer ) if response.success? render json: { token: response.params['token'], expires: response.params['expires'], redirectCheckoutUrl: response.params['redirectCheckoutUrl'] }, status: :created else render json: { error: response.message, errorCode: response.error_code }, status: :unprocessable_entity end end private def order @order ||= ::Spree::Order.find_by!(number: params[:order_number]) end def payment_method @payment_method ||= if params[:payment_method_id] SolidusAfterpay::PaymentMethod.active.find(params[:payment_method_id]) else SolidusAfterpay::PaymentMethod.active.first end end def redirect_confirm_url params[:redirect_confirm_url] || solidus_afterpay.callbacks_confirm_url( order_number: order.number, payment_method_id: payment_method.id ) end def redirect_cancel_url params[:redirect_cancel_url] || solidus_afterpay.callbacks_cancel_url( order_number: order.number, payment_method_id: payment_method.id ) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
solidus_afterpay-0.3.0 | app/controllers/solidus_afterpay/checkouts_controller.rb |
solidus_afterpay-0.2.0 | app/controllers/solidus_afterpay/checkouts_controller.rb |