Class: ActiveMerchant::Billing::FirstDataGateway
- Inherits:
-
Gateway
- Object
- Gateway
- ActiveMerchant::Billing::FirstDataGateway
- Defined in:
- lib/active_merchant/billing/first_data_gateway.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- CURRENCY_CODES =
{ 'ADP' => '020', 'AED' => '784', 'AFA' => '004', 'ALL' => '008', 'AMD' => '051', 'ANG' => '532', 'AOA' => '973', 'ARS' => '032', 'AUD' => '036', 'AWG' => '533', 'AZM' => '031', 'AZN' => '944', 'BAM' => '977', 'BBD' => '052', 'BDT' => '050', 'BGL' => '100', 'BGN' => '975', 'BHD' => '048', 'BIF' => '108', 'BMD' => '060', 'BND' => '096', 'BOB' => '068', 'BOV' => '984', 'BRL' => '986', 'BSD' => '044', 'BTN' => '064', 'BWP' => '072', 'BYR' => '974', 'BZD' => '084', 'CAD' => '124', 'CDF' => '976', 'CHF' => '756', 'CLF' => '990', 'CLP' => '152', 'CNY' => '156', 'COP' => '170', 'CRC' => '188', 'CUP' => '192', 'CVE' => '132', 'CYP' => '196', 'CZK' => '203', 'DJF' => '262', 'DKK' => '208', 'DOP' => '214', 'DZD' => '012', 'ECS' => '218', 'ECV' => '983', 'EEK' => '233', 'EGP' => '818', 'ERN' => '232', 'ETB' => '230', 'EUR' => '978', 'FJD' => '242', 'FKP' => '238', 'GBP' => '826', 'GEL' => '981', 'GHC' => '288', 'GIP' => '292', 'GMD' => '270', 'GNF' => '324', 'GTQ' => '320', 'GWP' => '624', 'GYD' => '328', 'HKD' => '344', 'HNL' => '340', 'HRK' => '191', 'HTG' => '332', 'HUF' => '348', 'IDR' => '360', 'ILS' => '376', 'INR' => '356', 'IQD' => '368', 'IRR' => '364', 'ISK' => '352', 'JMD' => '388', 'JOD' => '400', 'JPY' => '392', 'KES' => '404', 'KGS' => '417', 'KHR' => '116', 'KMF' => '174', 'KPW' => '408', 'KRW' => '410', 'KWD' => '414', 'KYD' => '136', 'KZT' => '398', 'LAK' => '418', 'LBP' => '422', 'LKR' => '144', 'LRD' => '430', 'LSL' => '426', 'LTL' => '440', 'LVL' => '428', 'LYD' => '434', 'MAD' => '504', 'MDL' => '498', 'MGF' => '450', 'MKD' => '807', 'MMK' => '104', 'MNT' => '496', 'MOP' => '446', 'MRO' => '478', 'MTL' => '470', 'MUR' => '480', 'MVR' => '462', 'MWK' => '454', 'MXN' => '484', 'MXV' => '979', 'MYR' => '458', 'MZM' => '508', 'NAD' => '516', 'NGN' => '566', 'NIO' => '558', 'NOK' => '578', 'NPR' => '524', 'NZD' => '554', 'OMR' => '512', 'PAB' => '590', 'PEN' => '604', 'PGK' => '598', 'PHP' => '608', 'PKR' => '586', 'PLN' => '985', 'PYG' => '600', 'QAR' => '634', 'ROL' => '642', 'RON' => '946', 'RUB' => '643', 'RUR' => '810', 'RWF' => '646', 'SAR' => '682', 'SBD' => '090', 'SCR' => '690', 'SDD' => '736', 'SEK' => '752', 'SGD' => '702', 'SHP' => '654', 'SIT' => '705', 'SKK' => '703', 'SLL' => '694', 'SOS' => '706', 'SRG' => '740', 'STD' => '678', 'SVC' => '222', 'SYP' => '760', 'SZL' => '748', 'THB' => '764', 'TJS' => '972', 'TMM' => '795', 'TND' => '788', 'TOP' => '776', 'TPE' => '626', 'TRL' => '792', 'TRY' => '949', 'TTD' => '780', 'TWD' => '901', 'TZS' => '834', 'UAH' => '980', 'UGX' => '800', 'USD' => '840', 'UYU' => '858', 'UZS' => '860', 'VEB' => '862', 'VND' => '704', 'VUV' => '548', 'XAF' => '950', 'XCD' => '951', 'XOF' => '952', 'XPF' => '953', 'YER' => '886', 'YUM' => '891', 'ZAR' => '710', 'ZMK' => '894', 'ZWD' => '716' }
Instance Method Summary collapse
-
#authorize(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Performs an authorization, which reserves the funds on the customer’s credit card, but does not charge the card.
-
#capture(amount, trans_id, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Captures the funds from an authorized transaction.
-
#close_day ⇒ Object
Close business day.
- #credit(amount, trans_id = nil) ⇒ Object
- #endpoint_url ⇒ Object
-
#execute_recurring(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Execute subsequent recurring payment.
-
#initialize(options = {}) ⇒ FirstDataGateway
constructor
Creates a new FirstDataGateway.
-
#purchase(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Perform a purchase, which is essentially an authorization and capture in a single operation.
-
#recurring(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Register new recurring payment along with the first payment.
- #redirect_url(trans_id = nil) ⇒ Object
-
#refund(amount, trans_id = nil) ⇒ ActiveSupport::HashWithIndifferentAccess
refund() allows you to return money to a card that was previously billed.
-
#result(trans_id, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Transaction result.
-
#update_recurring(params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Overwriting existing recurring payment card data without payment.
Constructor Details
#initialize(options = {}) ⇒ FirstDataGateway
Creates a new FirstDataGateway
The gateway requires that a valid pem and password be passed in the options
hash.
75 76 77 78 79 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 75 def initialize( = {}) requires!(, :pem, :pem_password) @options = super end |
Instance Method Details
#authorize(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Performs an authorization, which reserves the funds on the customer’s credit card, but does not charge the card.
Registering of DMS authorisation
115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 115 def (amount, params = {}) params = params.reverse_merge( :command => :a, :msg_type => 'DMS', :amount => amount, :currency => default_currency ) lookup_currency(params) requires!(params, :amount, :currency, :client_ip_addr, :msg_type) commit(params) end |
#capture(amount, trans_id, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Captures the funds from an authorized transaction.
Making of DMS transaction
138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 138 def capture(amount, trans_id, params = {}) params = params.reverse_merge( :command => :t, :msg_type => 'DMS', :trans_id => trans_id, :amount => amount, :currency => default_currency ) lookup_currency(params) requires!(params, :trans_id, :amount, :currency, :client_ip_addr) commit(params) end |
#close_day ⇒ Object
Close business day.
273 274 275 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 273 def close_day commit({ :command => :b }) end |
#credit(amount, trans_id = nil) ⇒ Object
184 185 186 187 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 184 def credit(amount, trans_id = nil) deprecated CREDIT_DEPRECATION_MESSAGE refund(amount, trans_id) end |
#endpoint_url ⇒ Object
277 278 279 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 277 def endpoint_url test? ? test_url : live_url end |
#execute_recurring(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Execute subsequent recurring payment
231 232 233 234 235 236 237 238 239 240 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 231 def execute_recurring(amount, params = {}) params = params.reverse_merge( :command => :e, :amount => amount, :currency => default_currency ) lookup_currency(params) requires!(params, :amount, :currency, :client_ip_addr, :description, :biller_client_id) commit(params) end |
#purchase(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Perform a purchase, which is essentially an authorization and capture in a single operation.
Registering of SMS transaction
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 92 def purchase(amount, params = {}) params = params.reverse_merge( :command => :v, :amount => amount, :currency => default_currency ) lookup_currency(params) requires!(params, :amount, :currency, :client_ip_addr) commit(params) end |
#recurring(amount, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Register new recurring payment along with the first payment
Afterwards when transaction result is requested then result response includes also RECC_PMNT_ID and RECC_PMNT_EXPIRY
208 209 210 211 212 213 214 215 216 217 218 219 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 208 def recurring(amount, params = {}) params = params.reverse_merge( :command => :z, :amount => amount, :currency => default_currency, :msg_type => 'SMS', :perspayee_gen => 1 ) lookup_currency(params) requires!(params, :amount, :currency, :client_ip_addr, :description, :biller_client_id, :perspayee_expiry) commit(params) end |
#redirect_url(trans_id = nil) ⇒ Object
281 282 283 284 285 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 281 def redirect_url(trans_id = nil) url = test? ? test_redirect_url : live_redirect_url url += "?trans_id=#{CGI.escape trans_id}" if trans_id url end |
#refund(amount, trans_id = nil) ⇒ ActiveSupport::HashWithIndifferentAccess
refund() allows you to return money to a card that was previously billed.
Transaction reversal
174 175 176 177 178 179 180 181 182 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 174 def refund(amount, trans_id = nil) params = { :command => :r, :trans_id => trans_id, :amount => amount } requires!(params, :command, :trans_id, :amount) commit(params) end |
#result(trans_id, params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Transaction result
157 158 159 160 161 162 163 164 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 157 def result(trans_id, params = {}) params = params.reverse_merge( :command => :c, :trans_id => trans_id ) requires!(params, :trans_id, :client_ip_addr) commit(params) end |
#update_recurring(params = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
Overwriting existing recurring payment card data without payment
Afterwards when transaction result is requested then result response includes also RECC_PMNT_ID and RECC_PMNT_EXPIRY
258 259 260 261 262 263 264 265 266 267 268 269 270 |
# File 'lib/active_merchant/billing/first_data_gateway.rb', line 258 def update_recurring(params = {}) params = params.reverse_merge( :command => :p, :amount => 0, :currency => default_currency, :msg_type => 'AUTH', :perspayee_gen => 1, :perspayee_overwrite => 1 ) lookup_currency(params) requires!(params, :currency, :client_ip_addr, :description, :biller_client_id, :perspayee_expiry) commit(params) end |