class ActivePayment::Gateways::PaypalAdaptivePayment

Attributes

purchase_token[RW]
sales[RW]

Public Class Methods

new() click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 12
def initialize
  @gateway = ActiveMerchant::Billing::PaypalAdaptivePayment.new(paypal_options)
end

Public Instance Methods

external_id_from_request(request) click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 38
def external_id_from_request(request)
  notify = ActiveMerchant::Billing::Integrations::PaypalAdaptivePayment.notification(request.raw_post)

  notify.params['pay_key']
end
livemode?() click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 34
def livemode?
  ActiveMerchant::Billing::Base.mode != :test
end
setup_purchase(sales) click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 16
def setup_purchase(sales)
  @sales = sales

  response = @gateway.setup_purchase(purchase_data(sales))
  raise ActivePayment::InvalidGatewayResponseError.new(response) unless response.success?

  @purchase_token = response['payKey']
  @gateway.set_payment_options(payment_options_data(@purchase_token, @sales))
  @gateway.redirect_url_for(response['payKey'])
end
verify_purchase(params) click to toggle source

return boolean

# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 28
def verify_purchase(params)
  notify = ActiveMerchant::Billing::Integrations::PaypalAdaptivePayment.notification(params)

  notify.acknowledge && notify.complete?
end

Private Instance Methods

cancel_return_url() click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 77
def cancel_return_url
  url_for(controller: 'active_payment/paypal_adaptive_payment_callback', action: :cancel, only_path: false, host: ActivePayment.configuration.default_url_host)
end
ipn_notification_url() click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 81
def ipn_notification_url
  url_for(controller: 'active_payment/paypal_adaptive_payment_callback', action: :ipn, only_path: false, host: ActivePayment.configuration.default_url_host)
end
payment_options_data(key, sales) click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 66
def payment_options_data(key, sales)
  {
    pa_key: key,
    receiver_options: sales.paypal_hash,
  }
end
paypal_options() click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 46
def paypal_options
  {
    action_type: "CREATE",
    login: ActivePayment.configuration.paypal_login,
    password: ActivePayment.configuration.paypal_password,
    signature: ActivePayment.configuration.paypal_signature,
    appid: ActivePayment.configuration.paypal_appid
  }
end
purchase_data(sales) click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 56
def purchase_data(sales)
  {
    return_url: return_url,
    cancel_url: cancel_return_url,
    ipn_notification_url: ipn_notification_url,
    receiver_list: sales.paypal_recipients,
    currency_code: sales.currency
  }
end
return_url() click to toggle source
# File lib/active_payment/gateways/paypal_adaptive_payment.rb, line 73
def return_url
  url_for(controller: 'active_payment/paypal_adaptive_payment_callback', action: :success, only_path: false, host: ActivePayment.configuration.default_url_host)
end