Class: ActiveMerchant::Billing::SpreedlyCoreGateway
- Defined in:
- lib/active_merchant/billing/gateways/spreedly_core.rb
Overview
Public: This gateway allows you to interact with any gateway you've created in Spreedly (https://spreedly.com). It's an adapter which can be particularly useful if you already have code interacting with ActiveMerchant and want to easily take advantage of Spreedly's vault.
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
Instance Method Summary collapse
-
#authorize(money, payment_method, options = {}) ⇒ Object
Public: Run an authorize transaction.
- #capture(money, authorization, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ SpreedlyCoreGateway
constructor
Public: Create a new Spreedly gateway.
-
#purchase(money, payment_method, options = {}) ⇒ Object
Public: Run a purchase transaction.
- #refund(money, authorization, options = {}) ⇒ Object
-
#store(credit_card, options = {}) ⇒ Object
Public: Store a credit card in the Spreedly vault and retain it.
-
#unstore(authorization, options = {}) ⇒ Object
Public: Redact the CreditCard in Spreedly.
- #void(authorization, options = {}) ⇒ Object
Methods inherited from Gateway
#card_brand, card_brand, #generate_unique_id, inherited, non_fractional_currency?, #scrub, supported_countries, #supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #supports_scrubbing?, #test?
Methods included from CreditCardFormatting
Methods included from PostsData
included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request
Constructor Details
#initialize(options = {}) ⇒ SpreedlyCoreGateway
Public: Create a new Spreedly gateway.
options - A hash of options: :login - The environment key. :password - The access secret. :gateway_token - The token of the gateway you've created in Spreedly.
30 31 32 33 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 30 def initialize( = {}) requires!(, :login, :password, :gateway_token) super end |
Instance Method Details
#authorize(money, payment_method, options = {}) ⇒ Object
Public: Run an authorize transaction.
money - The monetary amount of the transaction in cents. payment_method - The CreditCard or the Spreedly payment method token. options - A hash of options: :store - Retain the payment method if the authorize succeeds. Defaults to false. (optional)
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 60 def (money, payment_method, = {}) if payment_method.is_a?(String) (money, payment_method, ) else MultiResponse.run do |r| r.process { save_card(false, payment_method, ) } r.process { (money, r., ) } end end end |
#capture(money, authorization, options = {}) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 71 def capture(money, , ={}) request = build_xml_request('transaction') do |doc| add_invoice(doc, money, ) end commit("transactions/#{}/capture.xml", request) end |
#purchase(money, payment_method, options = {}) ⇒ Object
Public: Run a purchase transaction.
money - The monetary amount of the transaction in cents. payment_method - The CreditCard or the Spreedly payment method token. options - A hash of options: :store - Retain the payment method if the purchase succeeds. Defaults to false. (optional)
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 42 def purchase(money, payment_method, = {}) if payment_method.is_a?(String) purchase_with_token(money, payment_method, ) else MultiResponse.run do |r| r.process { save_card(false, payment_method, ) } r.process { purchase_with_token(money, r., ) } end end end |
#refund(money, authorization, options = {}) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 79 def refund(money, , ={}) request = build_xml_request('transaction') do |doc| add_invoice(doc, money, ) end commit("transactions/#{}/credit.xml", request) end |
#store(credit_card, options = {}) ⇒ Object
Public: Store a credit card in the Spreedly vault and retain it.
credit_card - The CreditCard to store options - A standard ActiveMerchant options hash
95 96 97 98 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 95 def store(credit_card, ={}) retain = (.has_key?(:retain) ? [:retain] : true) save_card(retain, credit_card, ) end |
#unstore(authorization, options = {}) ⇒ Object
Public: Redact the CreditCard in Spreedly. This wipes the sensitive payment information from the card.
credit_card - The CreditCard to store options - A standard ActiveMerchant options hash
105 106 107 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 105 def unstore(, ={}) commit("payment_methods/#{}/redact.xml", '', :put) end |
#void(authorization, options = {}) ⇒ Object
87 88 89 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 87 def void(, ={}) commit("transactions/#{}/void.xml", '') end |