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::CURRENCIES_WITHOUT_FRACTIONS, Gateway::DEBIT_CARDS, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods inherited from Gateway

#card_brand, card_brand, #generate_unique_id, inherited, non_fractional_currency?, #scrub, supported_countries, #supported_countries, supported_countries=, supports?, #supports_scrubbing?, #test?

Methods included from CreditCardFormatting

#expdate, #format

Constructor Details

#initialize(options = {}) ⇒ 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


58
59
60
61
62
63
64
65
66
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 58

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

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


68
69
70
71
72
73
74
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 68

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.
: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/Shopify/active_merchant")

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


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

def purchase(amount, payment_method, options={})
  params = {}
  (params, options)
  add_invoice(params, amount, options)
  add_customer_data(params, options)
  add_credit_card(params, payment_method, options)
  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:

: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/Shopify/active_merchant")

Returns an ActiveMerchant::Billing::Response object


105
106
107
108
109
110
111
112
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 105

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

#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/Shopify/active_merchant")

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


131
132
133
134
135
136
137
138
139
140
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 131

def store(payment_method, options = {})
  requires!(options, :billing_address)
  params = {}
  (params, options)
  add_invoice(params, 0, options)
  add_customer_data(params, options)
  add_credit_card(params, payment_method, options)
  params['Method'] = 'CreateTokenCustomer'
  commit(url_for("Transaction"), params)
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/Shopify/active_merchant")

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


161
162
163
164
165
166
167
168
169
170
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 161

def update(customer_token, payment_method, options = {})
  params = {}
  (params, options)
  add_invoice(params, 0, options)
  add_customer_data(params, options)
  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


76
77
78
79
80
# File 'lib/active_merchant/billing/gateways/eway_rapid.rb', line 76

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