Class: ActiveMerchant::Billing::FirstdataE4Gateway
- Defined in:
- lib/active_merchant/billing/gateways/firstdata_e4.rb
Constant Summary collapse
- TRANSACTIONS =
{ sale: "00", authorization: "01", verify: "05", 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]
- BRANDS =
{ :visa => 'Visa', :master => "Mastercard", :american_express => "American Express", :jcb => "JCB", :discover => "Discover" }
- E4_BRANDS =
BRANDS.merge({:mastercard => "Mastercard"})
- STANDARD_ERROR_CODE_MAPPING =
{ # Bank error codes: https://firstdata.zendesk.com/entries/471297-First-Data-Global-Gateway-e4-Bank-Response-Codes '201' => STANDARD_ERROR_CODE[:incorrect_number], '531' => STANDARD_ERROR_CODE[:invalid_cvc], '503' => STANDARD_ERROR_CODE[:invalid_cvc], '811' => STANDARD_ERROR_CODE[:invalid_cvc], '605' => STANDARD_ERROR_CODE[:invalid_expiry_date], '522' => STANDARD_ERROR_CODE[:expired_card], '303' => STANDARD_ERROR_CODE[:card_declined], '530' => STANDARD_ERROR_CODE[:card_declined], '401' => STANDARD_ERROR_CODE[:call_issuer], '402' => STANDARD_ERROR_CODE[:call_issuer], '501' => STANDARD_ERROR_CODE[:pickup_card], # Ecommerce error codes -- https://firstdata.zendesk.com/entries/451980-ecommerce-response-codes-etg-codes '22' => STANDARD_ERROR_CODE[:invalid_number], '25' => STANDARD_ERROR_CODE[:invalid_expiry_date], '31' => STANDARD_ERROR_CODE[:incorrect_cvc], '44' => STANDARD_ERROR_CODE[:incorrect_zip], '42' => STANDARD_ERROR_CODE[:processing_error] }
Constants inherited from Gateway
Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::CURRENCIES_WITHOUT_FRACTIONS, Gateway::DEBIT_CARDS, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE
Instance Attribute Summary
Attributes inherited from Gateway
Instance Method Summary collapse
- #authorize(money, credit_card_or_store_authorization, options = {}) ⇒ Object
- #capture(money, authorization, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ FirstdataE4Gateway
constructor
Create a new FirstdataE4Gateway.
- #purchase(money, credit_card_or_store_authorization, options = {}) ⇒ Object
- #refund(money, authorization, options = {}) ⇒ Object
- #scrub(transcript) ⇒ Object
-
#store(credit_card, options = {}) ⇒ Object
Tokenize a credit card with TransArmor.
- #supports_network_tokenization? ⇒ Boolean
- #supports_scrubbing? ⇒ Boolean
- #verify(credit_card, options = {}) ⇒ Object
- #void(authorization, options = {}) ⇒ Object
Methods inherited from Gateway
#card_brand, card_brand, #generate_unique_id, inherited, non_fractional_currency?, #supported_countries, supported_countries, supported_countries=, supports?, #test?
Methods included from CreditCardFormatting
Methods included from PostsData
included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request
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)
74 75 76 77 78 79 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 74 def initialize( = {}) requires!(, :login, :password) @options = super end |
Instance Method Details
#authorize(money, credit_card_or_store_authorization, options = {}) ⇒ Object
81 82 83 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 81 def (money, , = {}) commit(:authorization, (money, , )) end |
#capture(money, authorization, options = {}) ⇒ Object
89 90 91 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 89 def capture(money, , = {}) commit(:capture, build_capture_or_credit_request(money, , )) end |
#purchase(money, credit_card_or_store_authorization, options = {}) ⇒ Object
85 86 87 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 85 def purchase(money, , = {}) commit(:sale, (money, , )) end |
#refund(money, authorization, options = {}) ⇒ Object
97 98 99 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 97 def refund(money, , = {}) commit(:credit, build_capture_or_credit_request(money, , )) end |
#scrub(transcript) ⇒ Object
136 137 138 139 140 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 136 def scrub(transcript) transcript. gsub(%r((<Card_Number>).+(</Card_Number>)), '\1[FILTERED]\2'). gsub(%r((<VerificationStr2>).+(</VerificationStr2>)), '\1[FILTERED]\2') 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.)
end
# Use token
result = gateway.purchase(1000, my_record.)
firstdata.zendesk.com/entries/21303361-transarmor-tokenization
128 129 130 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 128 def store(credit_card, = {}) commit(:store, build_store_request(credit_card, ), credit_card) end |
#supports_network_tokenization? ⇒ Boolean
142 143 144 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 142 def supports_network_tokenization? true end |
#supports_scrubbing? ⇒ Boolean
132 133 134 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 132 def supports_scrubbing? true end |
#verify(credit_card, options = {}) ⇒ Object
101 102 103 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 101 def verify(credit_card, = {}) commit(:verify, (0, credit_card, )) end |
#void(authorization, options = {}) ⇒ Object
93 94 95 |
# File 'lib/active_merchant/billing/gateways/firstdata_e4.rb', line 93 def void(, = {}) commit(:void, build_capture_or_credit_request((), , )) end |