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 (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::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
- #scrub(transcript) ⇒ Object
-
#store(credit_card, options = {}) ⇒ Object
Public: Store a credit card in the Spreedly vault and retain it.
- #supports_scrubbing? ⇒ Boolean
-
#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, supported_countries, #supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #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 |
#scrub(transcript) ⇒ Object
113 114 115 116 117 118 119 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 113 def scrub(transcript) transcript. gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]'). gsub(%r((<number>).+(</number>)), '\1[FILTERED]\2'). gsub(%r((<verification_value>).+(</verification_value>)), '\1[FILTERED]\2'). gsub(%r((<payment_method_token>).+(</payment_method_token>)), '\1[FILTERED]\2') 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 |
#supports_scrubbing? ⇒ Boolean
109 110 111 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 109 def supports_scrubbing? true 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 |