class PaymentRecipes::PayPal::SOAP::Action::CreateExpressCheckout

Public Instance Methods

alternative_redirect_url() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 88
def alternative_redirect_url
  express_checkout_alternative_redirect_url
end
get_express_checkout_alternative_redirect_url() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 76
def get_express_checkout_alternative_redirect_url
  store(:express_checkout_alternative_redirect_url) do
    paypal_base_url = if api.config.mode == "sandbox"
                        "https://www.sandbox.paypal.com"
                      else
                        "https://www.paypal.com"
                      end

    "#{ paypal_base_url }/webapps/xoonboarding?token=#{ response.token }&useraction=commit"
  end
end
get_express_checkout_url() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 64
def get_express_checkout_url
  store(:express_checkout_redirect_url) do
    if set_express_checkout_response
      api.express_checkout_url(set_express_checkout_response)
    end
  end
end
modify_details() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 26
def modify_details
  unless [:sale, :authorize].include?(intent)
    raise Exception, "Allowed values for intent: :sale, :authorize"
  end

  store(:express_checkout_details) do
    payment_action = if intent == :sale
                       'Sale'
                     elsif intent == :authorize
                       'Authorization'
                     end

    details[:SetExpressCheckoutRequestDetails][:PaymentDetails][0][:PaymentAction] = payment_action

    details
  end
end
perform() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 9
def perform
  prepare_soap_api
  modify_details
  set_express_checkout

  get_express_checkout_url
  get_express_checkout_alternative_redirect_url

  express_checkout_redirect_url
end
prepare_soap_api() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 20
def prepare_soap_api
  store(:api) do
    ::PaymentRecipes::PayPal::SOAP::Settings.api
  end
end
redirect_url() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 72
def redirect_url
  express_checkout_redirect_url
end
response() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 60
def response
  set_express_checkout_response
end
set_express_checkout() click to toggle source
# File lib/payment_recipes/paypal/soap/action/create_express_checkout_payment.rb, line 44
def set_express_checkout
  set_express_checkout = api.build_set_express_checkout(express_checkout_details)

  store(:set_express_checkout_response) do
    response = api.set_express_checkout(set_express_checkout)

    unless response.success?
      @error = response.errors

      response = nil
    end

    response
  end
end