class Paypal::Express::Request

Public Instance Methods

agree!(token, options = {}) click to toggle source

Reference Transaction Specific

# File lib/paypal/express/request.rb, line 136
def agree!(token, options = {})
  params = {
    :TOKEN => token,
    :version => Paypal.api_version
  }
  if options[:max_amount]
    params[:MAXAMT] = Util.formatted_amount options[:max_amount]
  end
  response = self.request :CreateBillingAgreement, params
  Response.new response
end
agreement(reference_id) click to toggle source
# File lib/paypal/express/request.rb, line 148
def agreement(reference_id)
  params = {
    :REFERENCEID => reference_id,
    :version => Paypal.api_version
  }
  response = self.request :BillAgreementUpdate, params
  Response.new response
end
cancel!(profile_id, options = {}) click to toggle source
# File lib/paypal/express/request.rb, line 125
def cancel!(profile_id, options = {})
  renew!(profile_id, :Cancel, options)
end
capture!(authorization_id, amount, currency_code, complete_type = 'Complete') click to toggle source
# File lib/paypal/express/request.rb, line 65
def capture!(authorization_id, amount, currency_code, complete_type = 'Complete')
  params = {
    :AUTHORIZATIONID => authorization_id,
    :COMPLETETYPE => complete_type,
    :AMT => amount,
    :CURRENCYCODE => currency_code
  }

  response = self.request :DoCapture, params
  Response.new response
end
charge!(reference_id, amount, options = {}) click to toggle source
# File lib/paypal/express/request.rb, line 157
def charge!(reference_id, amount, options = {})
  params = {
    :REFERENCEID => reference_id,
    :AMT => Util.formatted_amount(amount),
    :version => Paypal.api_version,
    :PAYMENTACTION => options[:payment_action] || :Sale
  }
  if options[:currency_code]
    params[:CURRENCYCODE] = options[:currency_code]
  end
  response = self.request :DoReferenceTransaction, params
  Response.new response
end
checkout!(token, payer_id, payment_requests) click to toggle source
# File lib/paypal/express/request.rb, line 52
def checkout!(token, payer_id, payment_requests)
  params = {
    :TOKEN => token,
    :PAYERID => payer_id,
    :version => Paypal.api_version
  }
  Array(payment_requests).each_with_index do |payment_request, index|
    params.merge! payment_request.to_params(index)
  end
  response = self.request :DoExpressCheckoutPayment, params
  Response.new response
end
details(token) click to toggle source
# File lib/paypal/express/request.rb, line 39
def details(token)
  response = self.request :GetExpressCheckoutDetails, {
    :TOKEN    => token,
    :version  => Paypal.api_version
  }
  Response.new response
end
reactivate!(profile_id, options = {}) click to toggle source
# File lib/paypal/express/request.rb, line 129
def reactivate!(profile_id, options = {})
  renew!(profile_id, :Reactivate, options)
end
refund!(transaction_id, options = {}) click to toggle source

Refund Specific

# File lib/paypal/express/request.rb, line 184
def refund!(transaction_id, options = {})
  params = {
    :TRANSACTIONID => transaction_id,
    :REFUNDTYPE => :Full,
    :version  => Paypal.api_version
  }
  if options[:invoice_id]
    params[:INVOICEID] = options[:invoice_id]
  end
  if options[:type]
    params[:REFUNDTYPE] = options[:type]
    params[:AMT] = options[:amount]
    params[:CURRENCYCODE] = options[:currency_code]
  end
  if options[:note]
    params[:NOTE] = options[:note]
  end
  response = self.request :RefundTransaction, params
  Response.new response
end
renew!(profile_id, action, options = {}) click to toggle source
# File lib/paypal/express/request.rb, line 108
def renew!(profile_id, action, options = {})
  params = {
    :PROFILEID => profile_id,
    :ACTION => action,
    :version => Paypal.api_version
  }
  if options[:note]
    params[:NOTE] = options[:note]
  end
  response = self.request :ManageRecurringPaymentsProfileStatus, params
  Response.new response
end
revoke!(reference_id) click to toggle source
# File lib/paypal/express/request.rb, line 171
def revoke!(reference_id)
  params = {
    :REFERENCEID => reference_id,
    :BillingAgreementStatus => :Canceled,
    :version => Paypal.api_version
  }
  response = self.request :BillAgreementUpdate, params
  Response.new response
end
setup(payment_requests, return_url, cancel_url, options = {}) click to toggle source

Common

# File lib/paypal/express/request.rb, line 7
def setup(payment_requests, return_url, cancel_url, options = {})
  params = {
    :RETURNURL => return_url,
    :CANCELURL => cancel_url,
    :version   => Paypal.api_version
  }
  if options[:no_shipping]
    params[:REQCONFIRMSHIPPING] = 0
    params[:NOSHIPPING] = 1
  end

  params[:ALLOWNOTE] = 0 if options[:allow_note] == false

  {
    :solution_type => :SOLUTIONTYPE,
    :landing_page  => :LANDINGPAGE,
    :email         => :EMAIL,
    :brand         => :BRANDNAME,
    :locale        => :LOCALECODE,
    :logo          => :LOGOIMG,
    :cart_border_color => :CARTBORDERCOLOR,
    :payflow_color => :PAYFLOWCOLOR
  }.each do |option_key, param_key|
    params[param_key] = options[option_key] if options[option_key]
  end
  Array(payment_requests).each_with_index do |payment_request, index|
    params.merge! payment_request.to_params(index)
  end
  response = self.request :SetExpressCheckout, params
  Response.new response, options
end
subscribe!(token, recurring_profile) click to toggle source

Recurring Payment Specific

# File lib/paypal/express/request.rb, line 89
def subscribe!(token, recurring_profile)
  params = {
    :TOKEN => token,
    :version => Paypal.api_version
  }
  params.merge! recurring_profile.to_params
  response = self.request :CreateRecurringPaymentsProfile, params
  Response.new response
end
subscription(profile_id) click to toggle source
# File lib/paypal/express/request.rb, line 99
def subscription(profile_id)
  params = {
    :PROFILEID => profile_id,
    :version => Paypal.api_version
  }
  response = self.request :GetRecurringPaymentsProfileDetails, params
  Response.new response
end
suspend!(profile_id, options = {}) click to toggle source
# File lib/paypal/express/request.rb, line 121
def suspend!(profile_id, options = {})
  renew!(profile_id, :Suspend, options)
end
transaction_details(transaction_id) click to toggle source
# File lib/paypal/express/request.rb, line 47
def transaction_details(transaction_id)
  response = self.request :GetTransactionDetails, {:TRANSACTIONID=> transaction_id}
  Response.new response
end
void!(authorization_id, params={}) click to toggle source
# File lib/paypal/express/request.rb, line 77
def void!(authorization_id, params={})
  params = {
    :AUTHORIZATIONID => authorization_id,
    :NOTE => params[:note]
  }

  response = self.request :DoVoid, params
  Response.new response
end