Class: ActiveMerchant::Billing::EwayManagedGateway
- Defined in:
- lib/active_merchant/billing/gateways/eway_managed.rb
Defined Under Namespace
Classes: EwayResponse
Constant Summary collapse
- TEST_URL =
'https://www.eway.com.au/gateway/ManagedPaymentService/test/managedCreditCardPayment.asmx'
- LIVE_URL =
'https://www.eway.com.au/gateway/ManagedPaymentService/managedCreditCardPayment.asmx'
Constants inherited from Gateway
Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::CURRENCIES_WITHOUT_FRACTIONS, Gateway::DEBIT_CARDS
Instance Attribute Summary
Attributes inherited from Gateway
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ EwayManagedGateway
constructor
A new instance of EwayManagedGateway.
-
#purchase(money, billing_id, options = {}) ⇒ Object
Process a payment in the given amount against the stored credit card given by billing_id.
-
#store(creditcard, options = {}) ⇒ Object
add a new customer CC to your eway account and return unique ManagedCustomerID supports storing details required by eway see “add_creditcard” and “add_address”.
-
#test? ⇒ Boolean
TODO: eWay API also provides QueryCustomer TODO: eWay API also provides QueryPayment.
- #update(billing_id, creditcard, options = {}) ⇒ Object
Methods inherited from Gateway
#card_brand, card_brand, inherited, supports?
Methods included from CreditCardFormatting
Constructor Details
#initialize(options = {}) ⇒ EwayManagedGateway
Returns a new instance of EwayManagedGateway.
24 25 26 27 28 29 30 31 32 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 24 def initialize( = {}) requires!(, :login, :username, :password) @options = # eWay returns 500 code for faults, which AM snaffles. # So, we tell it to allow them. @options[:ignore_http_status]=true super end |
Instance Method Details
#purchase(money, billing_id, options = {}) ⇒ Object
Process a payment in the given amount against the stored credit card given by billing_id
Parameters
-
money
– The amount to be purchased as an Integer value in cents. -
billing_id
– The eWay provided card/customer token to charge (managedCustomerID) -
options
– A hash of optional parameters.
Options
-
:order_id
– The order number, passed to eWay as the “Invoice Reference” -
:invoice
– The invoice number, passed to eWay as the “Invoice Reference” unless :order_id is also given -
:description
– A description of the payment, passed to eWay as the “Invoice Description”
84 85 86 87 88 89 90 91 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 84 def purchase(money, billing_id, ={}) post = {} post[:managedCustomerID] = billing_id.to_s post[:amount]=money add_invoice(post, ) commit("ProcessPayment", post) end |
#store(creditcard, options = {}) ⇒ Object
add a new customer CC to your eway account and return unique ManagedCustomerID supports storing details required by eway see “add_creditcard” and “add_address”
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 36 def store(creditcard, = {}) post = {} # Handle our required fields requires!(, :billing_address) # Handle eWay specific required fields. billing_address = [:billing_address] eway_requires!(billing_address) add_creditcard(post, creditcard) add_address(post, billing_address) add_misc_fields(post, ) commit("CreateCustomer", post) end |
#test? ⇒ Boolean
TODO: eWay API also provides QueryCustomer TODO: eWay API also provides QueryPayment
96 97 98 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 96 def test? @options[:test] || Base.gateway_mode == :test end |
#update(billing_id, creditcard, options = {}) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 53 def update(billing_id, creditcard, ={}) post = {} # Handle our required fields requires!(, :billing_address) # Handle eWay specific required fields. billing_address = [:billing_address] eway_requires!(billing_address) post[:managedCustomerID]=billing_id add_creditcard(post, creditcard) add_address(post, billing_address) add_misc_fields(post, ) commit("UpdateCustomer", post) end |