Class: AbtainBilling::Billing::Gateway
- Inherits:
-
Object
- Object
- AbtainBilling::Billing::Gateway
- Includes:
- CreditCardFormatting, PostsData, RequiresParameters, Utils
- Defined in:
- lib/abtain_billing/billing/gateway.rb
Overview
Description
The Gateway class is the base class for all AbtainBilling 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
Direct Known Subclasses
AuthorizeNetCimGateway, AuthorizeNetGateway, BogusGateway, CyberSourceGateway
Constant Summary collapse
- DEBIT_CARDS =
[ :switch, :solo ]
- @@implementations =
[]
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Class Method Summary collapse
- .card_brand(source) ⇒ Object
- .inherited(subclass) ⇒ Object
-
.supports?(card_type) ⇒ Boolean
Use this method to check if your gateway of interest supports a credit card of some type.
Instance Method Summary collapse
- #card_brand(source) ⇒ Object
-
#initialize(options = {}) ⇒ Gateway
constructor
Initialize a new gateway.
-
#test? ⇒ Boolean
Are we running in test mode?.
Methods included from Utils
Methods included from CreditCardFormatting
Methods included from RequiresParameters
Methods included from PostsData
Constructor Details
#initialize(options = {}) ⇒ Gateway
Initialize a new gateway.
See the documentation for the gateway you will be using to make sure there are no other required options.
119 120 |
# File 'lib/abtain_billing/billing/gateway.rb', line 119 def initialize( = {}) end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
99 100 101 |
# File 'lib/abtain_billing/billing/gateway.rb', line 99 def @options end |
Class Method Details
.card_brand(source) ⇒ Object
106 107 108 109 |
# File 'lib/abtain_billing/billing/gateway.rb', line 106 def self.card_brand(source) result = source.respond_to?(:brand) ? source.brand : source.type result.to_s.downcase end |
.inherited(subclass) ⇒ Object
69 70 71 72 |
# File 'lib/abtain_billing/billing/gateway.rb', line 69 def self.inherited(subclass) super @@implementations << subclass end |
.supports?(card_type) ⇒ Boolean
Use this method to check if your gateway of interest supports a credit card of some type
102 103 104 |
# File 'lib/abtain_billing/billing/gateway.rb', line 102 def self.supports?(card_type) supported_cardtypes.include?(card_type.to_sym) end |
Instance Method Details
#card_brand(source) ⇒ Object
111 112 113 |
# File 'lib/abtain_billing/billing/gateway.rb', line 111 def card_brand(source) self.class.card_brand(source) end |
#test? ⇒ Boolean
Are we running in test mode?
123 124 125 |
# File 'lib/abtain_billing/billing/gateway.rb', line 123 def test? Base.gateway_mode == :test end |