Class: MerbMerchant::Billing::PayflowGateway
- Includes:
- PayflowCommonAPI
- Defined in:
- lib/merb_merchant/billing/gateways/payflow.rb
Direct Known Subclasses
Constant Summary collapse
- RECURRING_ACTIONS =
Set.new([:add, :modify, :cancel, :inquiry, :reactivate, :payment])
Constants included from PayflowCommonAPI
MerbMerchant::Billing::PayflowCommonAPI::CARD_MAPPING, MerbMerchant::Billing::PayflowCommonAPI::CVV_CODE, MerbMerchant::Billing::PayflowCommonAPI::LIVE_URL, MerbMerchant::Billing::PayflowCommonAPI::TEST_URL, MerbMerchant::Billing::PayflowCommonAPI::TRANSACTIONS, MerbMerchant::Billing::PayflowCommonAPI::XMLNS
Constants inherited from Gateway
Constants included from PostsData
PostsData::MAX_RETRIES, PostsData::OPEN_TIMEOUT, PostsData::READ_TIMEOUT
Instance Attribute Summary
Attributes inherited from Gateway
Instance Method Summary collapse
- #authorize(money, credit_card_or_reference, options = {}) ⇒ Object
- #cancel_recurring(profile_id) ⇒ Object
- #credit(money, identification_or_credit_card, options = {}) ⇒ Object
- #express ⇒ Object
- #purchase(money, credit_card_or_reference, options = {}) ⇒ Object
-
#recurring(money, credit_card, options = {}) ⇒ Object
Adds or modifies a recurring Payflow profile.
- #recurring_inquiry(profile_id, options = {}) ⇒ Object
Methods included from PayflowCommonAPI
#capture, included, #initialize, #test?, #void
Methods inherited from Gateway
#card_brand, card_brand, inherited, #initialize, supports?, #test?
Methods included from Utils
Methods included from CreditCardFormatting
Methods included from RequiresParameters
Methods included from PostsData
Instance Method Details
#authorize(money, credit_card_or_reference, options = {}) ⇒ Object
16 17 18 19 20 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 16 def (money, credit_card_or_reference, = {}) request = (:authorization, money, credit_card_or_reference, ) commit(request) end |
#cancel_recurring(profile_id) ⇒ Object
60 61 62 63 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 60 def cancel_recurring(profile_id) request = build_recurring_request(:cancel, 0, :profile_id => profile_id) commit(request, :recurring) end |
#credit(money, identification_or_credit_card, options = {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 28 def credit(money, identification_or_credit_card, = {}) if identification_or_credit_card.is_a?(String) # Perform referenced credit request = build_reference_request(:credit, money, identification_or_credit_card, ) else # Perform non-referenced credit request = build_credit_card_request(:credit, money, identification_or_credit_card, ) end commit(request) end |
#express ⇒ Object
70 71 72 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 70 def express @express ||= PayflowExpressGateway.new(@options) end |
#purchase(money, credit_card_or_reference, options = {}) ⇒ Object
22 23 24 25 26 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 22 def purchase(money, credit_card_or_reference, = {}) request = (:purchase, money, credit_card_or_reference, ) commit(request) end |
#recurring(money, credit_card, options = {}) ⇒ Object
Adds or modifies a recurring Payflow profile. See the Payflow Pro Recurring Billing Guide for more details: www.paypal.com/en_US/pdf/PayflowPro_RecurringBilling_Guide.pdf
Several options are available to customize the recurring profile:
-
profile_id
- is only required for editing a recurring profile -
starting_at
- takes a Date, Time, or string in mmddyyyy format. The date must be in the future. -
name
- The name of the customer to be billed. If not specified, the name from the credit card is used. -
periodicity
- The frequency that the recurring payments will occur at. Can be one of
:bimonthly, :monthly, :biweekly, :weekly, :yearly, :daily, :semimonthly, :quadweekly, :quarterly, :semiyearly
-
payments
- The term, or number of payments that will be made -
comment
- A comment associated with the profile
52 53 54 55 56 57 58 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 52 def recurring(money, credit_card, = {}) [:name] = credit_card.name if [:name].blank? && credit_card request = build_recurring_request([:profile_id] ? :modify : :add, money, ) do |xml| add_credit_card(xml, credit_card) if credit_card end commit(request, :recurring) end |
#recurring_inquiry(profile_id, options = {}) ⇒ Object
65 66 67 68 |
# File 'lib/merb_merchant/billing/gateways/payflow.rb', line 65 def recurring_inquiry(profile_id, = {}) request = build_recurring_request(:inquiry, nil, .update( :profile_id => profile_id )) commit(request, :recurring) end |