Class: ActiveMerchant::Billing::PaypalGateway

Inherits:
Gateway
  • Object
show all
Includes:
PaypalCommonAPI
Defined in:
lib/active_merchant/billing/gateways/paypal.rb

Direct Known Subclasses

PaypalCaGateway

Constant Summary collapse

RECURRING_ACTIONS =
Set.new([:add, :cancel, :inquiry, :suspend])

Constants included from PaypalCommonAPI

ActiveMerchant::Billing::PaypalCommonAPI::API_VERSION, ActiveMerchant::Billing::PaypalCommonAPI::AUSTRALIAN_STATES, ActiveMerchant::Billing::PaypalCommonAPI::CREDENTIALS_NAMESPACES, ActiveMerchant::Billing::PaypalCommonAPI::EBAY_NAMESPACE, ActiveMerchant::Billing::PaypalCommonAPI::ENVELOPE_NAMESPACES, ActiveMerchant::Billing::PaypalCommonAPI::FRAUD_REVIEW_CODE, ActiveMerchant::Billing::PaypalCommonAPI::PAYPAL_NAMESPACE, ActiveMerchant::Billing::PaypalCommonAPI::SUCCESS_CODES, ActiveMerchant::Billing::PaypalCommonAPI::URLS

Constants inherited from Gateway

Gateway::DEBIT_CARDS

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods included from PaypalCommonAPI

#capture, #credit, included, #initialize, #reauthorize, #test?, #transfer, #void

Methods inherited from Gateway

#card_brand, card_brand, inherited, #initialize, supports?, #test?

Methods included from Utils

generate_unique_id

Methods included from CreditCardFormatting

#format

Methods included from RequiresParameters

#requires!

Methods included from PostsData

included, #ssl_get, #ssl_post

Instance Method Details

#authorize(money, credit_card_or_referenced_id, options = {}) ⇒ Object



14
15
16
17
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 14

def authorize(money, credit_card_or_referenced_id, options = {})
  requires!(options, :ip)
  commit define_transaction_type(credit_card_or_referenced_id), build_sale_or_authorization_request('Authorization', money, credit_card_or_referenced_id, options)
end

#cancel_recurring(profile_id) ⇒ Object

cancels an existing recurring profile



41
42
43
44
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 41

def cancel_recurring(profile_id)
  request = build_recurring_request(:cancel, 0, :profile_id => profile_id) {}
  commit('ManageRecurringPaymentsProfileStatus', request)
end

#expressObject



24
25
26
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 24

def express
  @express ||= PaypalExpressGateway.new(@options)
end

#purchase(money, credit_card_or_referenced_id, options = {}) ⇒ Object



19
20
21
22
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 19

def purchase(money, credit_card_or_referenced_id, options = {})
  requires!(options, :ip)
  commit define_transaction_type(credit_card_or_referenced_id), build_sale_or_authorization_request('Sale', money, credit_card_or_referenced_id, options)
end

#recurring(money, credit_card, options = {}) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 32

def recurring(money, credit_card, options = {})
  options[:name] = credit_card.name if options[:name].blank? && credit_card
  request = build_recurring_request(options[:profile_id] ? :modify : :add, money, options) do |xml|
    add_credit_card(xml, credit_card, options[:billing_address], options) if credit_card
  end
  commit('CreateRecurringPaymentsProfile', request)
end

#recurring_inquiry(profile_id, options = {}) ⇒ Object

retrieves information about a recurring profile



47
48
49
50
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 47

def recurring_inquiry(profile_id, options = {})
  request = build_recurring_request(:inquiry, nil, options.update( :profile_id => profile_id ))
  commit('GetRecurringPaymentsProfileDetails', request)
end

#suspend_recurring(profile_id) ⇒ Object

suspends a recurring profile



53
54
55
56
# File 'lib/active_merchant/billing/gateways/paypal.rb', line 53

def suspend_recurring(profile_id)
  request = build_recurring_request(:suspend, 0, :profile_id => profile_id) {}
  commit('ManageRecurringPaymentsProfileStatus', request)
end