Class: ActiveMerchant::Billing::EwayRapidGateway

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

Constant Summary

Constants inherited from Gateway

Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods inherited from Gateway

#add_field_to_post_if_present, #add_fields_to_post_if_present, #card_brand, card_brand, #generate_unique_id, inherited, #supported_countries, supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #supports_scrubbing?, #test?

Methods included from CreditCardFormatting

#expdate, #format

Methods included from PostsData

included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request

Constructor Details

#initialize(options = {}) ⇒ EwayRapidGateway

Returns a new instance of EwayRapidGateway.



18
19
20
21
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 18

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

Instance Method Details

#authorize(amount, payment_method, options = {}) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 61

def authorize(amount, payment_method, options = {})
  params = {}
  (params, options)
  add_invoice(params, amount, options)
  add_customer_data(params, options, payment_method)
  add_credit_card(params, payment_method, options)
  params['Method'] = 'Authorise'
  commit(url_for('Authorisation'), params)
end

#capture(amount, identification, options = {}) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 71

def capture(amount, identification, options = {})
  params = {}
  (params, options)
  add_invoice(params, amount, options)
  add_reference(params, identification)
  commit(url_for('CapturePayment'), params)
end

#purchase(amount, payment_method, options = {}) ⇒ Object

Public: Run a purchase transaction.

amount - The monetary amount of the transaction in cents. payment_method - The payment method or authorization token returned from store. options - A standard ActiveMerchant options hash:

:transaction_type - One of: Purchase (default), MOTO
                    or Recurring.  For stored card payments (aka - TokenPayments),
                    this must be either MOTO or Recurring.
:invoice          - The merchant’s invoice number for this
                    transaction (optional).
:order_id         - A merchant-supplied identifier for the
                    transaction (optional).
:description      - A merchant-supplied description of the
                    transaction (optional).
:currency         - Three letter currency code for the
                    transaction (default: "AUD")
:billing_address  - Standard ActiveMerchant address hash
                    (optional).
:shipping_address - Standard ActiveMerchant address hash
                    (optional).
:ip               - The ip of the consumer initiating the
                    transaction (optional).
:application_id   - A string identifying the application
                    submitting the transaction
                    (default: "https://github.com/activemerchant/active_merchant")

Returns an ActiveMerchant::Billing::Response object where authorization is the Transaction ID on success



50
51
52
53
54
55
56
57
58
59
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 50

def purchase(amount, payment_method, options = {})
  params = {}
  (params, options)
  add_invoice(params, amount, options)
  add_customer_data(params, options, payment_method)
  add_credit_card(params, payment_method, options)
  add_3ds_authenticated_data(params, options) if options[:three_d_secure]
  params['Method'] = payment_method.respond_to?(:number) ? 'ProcessPayment' : 'TokenPayment'
  commit(url_for('Transaction'), params)
end

#refund(amount, identification, options = {}) ⇒ Object

Public: Refund a transaction.

amount - The monetary amount of the transaction in cents identification - The transaction id which is returned in the

authorization of the successful purchase transaction

options - A standard ActiveMerchant options hash:

:invoice          - The merchant’s invoice number for this
                    transaction (optional).
:order_id         - A merchant-supplied identifier for the
                    transaction (optional).
:description      - A merchant-supplied description of the
                    transaction (optional).
:currency         - Three letter currency code for the
                    transaction (default: "AUD")
:billing_address  - Standard ActiveMerchant address hash
                    (optional).
:shipping_address - Standard ActiveMerchant address hash
                    (optional).
:ip               - The ip of the consumer initiating the
                    transaction (optional).
:application_id   - A string identifying the application
                    submitting the transaction
                    (default: "https://github.com/activemerchant/active_merchant")

Returns an ActiveMerchant::Billing::Response object



110
111
112
113
114
115
116
117
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 110

def refund(amount, identification, options = {})
  params = {}
  (params, options)
  add_invoice(params, amount, options, 'Refund')
  add_reference(params['Refund'], identification)
  add_customer_data(params, options)
  commit(url_for("Transaction/#{identification}/Refund"), params)
end

#scrub(transcript) ⇒ Object



181
182
183
184
185
186
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 181

def scrub(transcript)
  transcript.
    gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]').
    gsub(%r(("Number\\?":\\?")[^"]*)i, '\1[FILTERED]').
    gsub(%r(("CVN\\?":\\?"?)[^",]*)i, '\1[FILTERED]')
end

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

Public: Store card details and return a valid token

payment_method - The payment method or nil if :customer_token is provided options - A supplemented ActiveMerchant options hash:

:order_id         - A merchant-supplied identifier for the
                    transaction (optional).
:description      - A merchant-supplied description of the
                    transaction (optional).
:billing_address  - Standard ActiveMerchant address hash
                    (required).
:ip               - The ip of the consumer initiating the
                    transaction (optional).
:application_id   - A string identifying the application
                    submitting the transaction
                    (default: "https://github.com/activemerchant/active_merchant")

Returns an ActiveMerchant::Billing::Response object where the authorization is the customer_token on success



136
137
138
139
140
141
142
143
144
145
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 136

def store(payment_method, options = {})
  requires!(options, :billing_address)
  params = {}
  (params, options)
  add_invoice(params, 0, options)
  add_customer_data(params, options, payment_method)
  add_credit_card(params, payment_method, options)
  params['Method'] = 'CreateTokenCustomer'
  commit(url_for('Transaction'), params)
end

#supports_scrubbingObject



177
178
179
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 177

def supports_scrubbing
  true
end

#update(customer_token, payment_method, options = {}) ⇒ Object

Public: Update a customer’s data

customer_token - The customer token returned in the authorization of

a successful store transaction.

payment_method - The payment method or nil if :customer_token is provided options - A supplemented ActiveMerchant options hash:

:order_id         - A merchant-supplied identifier for the
                    transaction (optional).
:description      - A merchant-supplied description of the
                    transaction (optional).
:billing_address  - Standard ActiveMerchant address hash
                    (optional).
:ip               - The ip of the consumer initiating the
                    transaction (optional).
:application_id   - A string identifying the application
                    submitting the transaction
                    (default: "https://github.com/activemerchant/active_merchant")

Returns an ActiveMerchant::Billing::Response object where the authorization is the customer_token on success



166
167
168
169
170
171
172
173
174
175
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 166

def update(customer_token, payment_method, options = {})
  params = {}
  (params, options)
  add_invoice(params, 0, options)
  add_customer_data(params, options, payment_method)
  add_credit_card(params, payment_method, options)
  add_customer_token(params, customer_token)
  params['Method'] = 'UpdateTokenCustomer'
  commit(url_for('Transaction'), params)
end

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



79
80
81
82
83
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 79

def void(identification, options = {})
  params = {}
  add_reference(params, identification)
  commit(url_for('CancelAuthorisation'), params)
end