Class: ActiveMerchant::Billing::FirstdataE4Gateway

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

Constant Summary collapse

TRANSACTIONS =
{
  :sale          => "00",
  :authorization => "01",
  :capture       => "32",
  :void          => "33",
  :credit        => "34",
  :store         => "05"
}
POST_HEADERS =
{
  "Accepts" => "application/xml",
  "Content-Type" => "application/xml"
}
SUCCESS =
"true"
SENSITIVE_FIELDS =
[:verification_str2, :expiry_date, :card_number]

Constants inherited from Gateway

Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::CURRENCIES_WITHOUT_FRACTIONS, Gateway::DEBIT_CARDS

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods inherited from Gateway

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

Methods included from CreditCardFormatting

#format

Constructor Details

#initialize(options = {}) ⇒ FirstdataE4Gateway

Create a new FirstdataE4Gateway

The gateway requires that a valid login and password be passed in the options hash.

Options

  • :login – The EXACT ID. Also known as the Gateway ID.

    (Found in your administration terminal settings)
    
  • :password – The terminal password (not your account password)



42
43
44
45
46
47
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 42

def initialize(options = {})
  requires!(options, :login, :password)
  @options = options

  super
end

Instance Method Details

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



49
50
51
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 49

def authorize(money, credit_card_or_store_authorization, options = {})
  commit(:authorization, build_sale_or_authorization_request(money, credit_card_or_store_authorization, options))
end

#capture(money, authorization, options = {}) ⇒ Object



57
58
59
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 57

def capture(money, authorization, options = {})
  commit(:capture, build_capture_or_credit_request(money, authorization, options))
end

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



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

def purchase(money, credit_card_or_store_authorization, options = {})
  commit(:sale, build_sale_or_authorization_request(money, credit_card_or_store_authorization, options))
end

#refund(money, authorization, options = {}) ⇒ Object



65
66
67
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 65

def refund(money, authorization, options = {})
  commit(:credit, build_capture_or_credit_request(money, authorization, options))
end

#store(credit_card, options = {}) ⇒ Object

Tokenize a credit card with TransArmor

The TransArmor token and other card data necessary for subsequent transactions is stored in the response’s authorization attribute. The authorization string may be passed to authorize and purchase instead of a ActiveMerchant::Billing::CreditCard instance.

TransArmor support must be explicitly activated on your gateway account by FirstData. If your authorization string is empty, contact FirstData support for account setup assistance.

Example

# Generate token
result = gateway.store(credit_card)
if result.success?
  my_record.update_attributes(:authorization => result.authorization)
end

# Use token
result = gateway.purchase(1000, my_record.authorization)

firstdata.zendesk.com/entries/21303361-transarmor-tokenization



92
93
94
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 92

def store(credit_card, options = {})
  commit(:store, build_store_request(credit_card, options), credit_card)
end

#void(authorization, options = {}) ⇒ Object



61
62
63
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 61

def void(authorization, options = {})
  commit(:void, build_capture_or_credit_request(money_from_authorization(authorization), authorization, options))
end