Class: ActiveMerchant::Billing::EwayManagedGateway
- Defined in:
- lib/active_merchant/billing/gateways/eway_managed.rb
Defined Under Namespace
Classes: EwayResponse
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
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.
-
#retrieve(billing_id) ⇒ Object
Get customer’s stored credit card details 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”.
- #update(billing_id, creditcard, options = {}) ⇒ Object
Methods inherited from Gateway
#add_field_to_post_if_present, #add_fields_to_post_if_present, #card_brand, card_brand, #generate_unique_id, inherited, #scrub, #supported_countries, supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #supports_scrubbing?, #test?
Methods included from CreditCardFormatting
#expdate, #format, #strftime_yyyymm
Methods included from PostsData
included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request
Constructor Details
#initialize(options = {}) ⇒ EwayManagedGateway
Returns a new instance of EwayManagedGateway.
24 25 26 27 28 29 30 31 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 24 def initialize( = {}) requires!(, :login, :username, :password) # eWay returns 500 code for faults, which AM snaffles. # So, we tell it to allow them. [: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”
83 84 85 86 87 88 89 90 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 83 def purchase(money, billing_id, = {}) post = {} post[:managedCustomerID] = billing_id.to_s post[:amount] = money add_invoice(post, ) commit('ProcessPayment', post) end |
#retrieve(billing_id) ⇒ Object
Get customer’s stored credit card details given by billing_id
Parameters
-
billing_id
– The eWay provided card/customer token to charge (managedCustomerID)
97 98 99 100 101 102 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 97 def retrieve(billing_id) post = {} post[:managedCustomerID] = billing_id.to_s commit('QueryCustomer', 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”
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 35 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 |
#update(billing_id, creditcard, options = {}) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/active_merchant/billing/gateways/eway_managed.rb', line 52 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 |