Class ActiveMerchant::Billing::Gateway
In: lib/active_merchant/billing/gateway.rb
Parent: Object

Description

The Gateway class is the base class for all ActiveMerchant gateway implementations.

The standard list of gateway functions that most concrete gateway subclasses implement is:

  • purchase(money, creditcard, options = {})
  • authorize(money, creditcard, options = {})
  • capture(money, authorization, options = {})
  • void(identification, options = {})
  • credit(money, identification, options = {})

Some gateways include features for recurring billing

  • recurring(money, creditcard, options = {})

Some gateways also support features for storing credit cards:

  • store(creditcard, options = {})
  • unstore(identification, options = {})

Gateway Options

The options hash consists of the following options:

  • :order_id - The order number
  • :ip - The IP address of the customer making the purchase
  • :customer - The name, customer number, or other information that identifies the customer
  • :invoice - The invoice number
  • :merchant - The name or description of the merchant offering the product
  • :description - A description of the transaction
  • :email - The email address of the customer
  • :currency - The currency of the transaction. Only important when you are using a currency that is not the default with a gateway that supports multiple currencies.
  • :billing_address - A hash containing the billing address of the customer.
  • :shipping_address - A hash containing the shipping address of the customer.

The :billing_address, and :shipping_address hashes can have the following keys:

  • :name - The full name of the customer.
  • :company - The company name of the customer.
  • :address1 - The primary street address of the customer.
  • :address2 - Additional line of address information.
  • :city - The city of the customer.
  • :state - The state of the customer. The 2 digit code for US and Canadian addresses. The full name of the state or province for foreign addresses.
  • :country - The [ISO 3166-1-alpha-2 code](www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm) for the customer.
  • :zip - The zip or postal code of the customer.
  • :phone - The phone number of the customer.

Implmenting new gateways

See the ActiveMerchant Guide to Contributing

Methods

card_brand   card_brand   inherited   new   supports?   test?  

Included Modules

PostsData RequiresParameters CreditCardFormatting Utils

Constants

DEBIT_CARDS = [ :switch, :solo ]

Attributes

options  [R] 

Public Class methods

[Source]

     # File lib/active_merchant/billing/gateway.rb, line 106
106:       def self.card_brand(source)
107:         result = source.respond_to?(:brand) ? source.brand : source.type
108:         result.to_s.downcase
109:       end

[Source]

    # File lib/active_merchant/billing/gateway.rb, line 69
69:       def self.inherited(subclass)
70:         super
71:         @@implementations << subclass
72:       end

Initialize a new gateway.

See the documentation for the gateway you will be using to make sure there are no other required options.

[Source]

     # File lib/active_merchant/billing/gateway.rb, line 119
119:       def initialize(options = {})
120:       end

Use this method to check if your gateway of interest supports a credit card of some type

[Source]

     # File lib/active_merchant/billing/gateway.rb, line 102
102:       def self.supports?(card_type)
103:         supported_cardtypes.include?(card_type.to_sym)
104:       end

Public Instance methods

[Source]

     # File lib/active_merchant/billing/gateway.rb, line 111
111:       def card_brand(source)
112:         self.class.card_brand(source)
113:       end

Are we running in test mode?

[Source]

     # File lib/active_merchant/billing/gateway.rb, line 123
123:       def test?
124:         Base.gateway_mode == :test
125:       end

[Validate]