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::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
-
#find(transaction_token) ⇒ Object
(also: #status)
Public: Get the transaction with the given token.
-
#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.
-
#verify(payment_method, options = {}) ⇒ Object
Public: Determine whether a credit card is chargeable card and available for purchases.
- #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([:store], 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 |
#find(transaction_token) ⇒ Object Also known as: status
Public: Get the transaction with the given token.
127 128 129 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 127 def find(transaction_token) commit("transactions/#{transaction_token}.xml", nil, :get) 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([:store], 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
137 138 139 140 141 142 143 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 137 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
112 113 114 115 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 112 def store(credit_card, ={}) retain = (.has_key?(:retain) ? [:retain] : true) save_card(retain, credit_card, ) end |
#supports_scrubbing? ⇒ Boolean
133 134 135 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 133 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
122 123 124 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 122 def unstore(, ={}) commit("payment_methods/#{}/redact.xml", '', :put) end |
#verify(payment_method, options = {}) ⇒ Object
Public: Determine whether a credit card is chargeable card and available for purchases.
payment_method - The CreditCard or the Spreedly payment method token. options - A hash of options:
:store - Retain the payment method if the verify
succeeds. Defaults to false. (optional)
97 98 99 100 101 102 103 104 105 106 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 97 def verify(payment_method, = {}) if payment_method.is_a?(String) verify_with_token(payment_method, ) else MultiResponse.run do |r| r.process { save_card([:store], payment_method, ) } r.process { verify_with_token(r., ) } end end 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 |