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
#add_field_to_post_if_present, #add_fields_to_post_if_present, #card_brand, card_brand, #generate_unique_id, inherited, #supported_countries, supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #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 = {}) ⇒ 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)
54 55 56 57 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 54 def (money, payment_method, = {}) request = build_transaction_request(money, payment_method, ) commit("gateways/#{@options[:gateway_token]}/authorize.xml", request) end |
#capture(money, authorization, options = {}) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 59 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.
116 117 118 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 116 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 Check 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 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 42 def purchase(money, payment_method, = {}) request = build_transaction_request(money, payment_method, ) commit("gateways/#{[:gateway_token] || @options[:gateway_token]}/purchase.xml", request) end |
#refund(money, authorization, options = {}) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 67 def refund(money, , = {}) request = build_xml_request('transaction') do |doc| add_invoice(doc, money, ) (:gateway_specific_fields, doc, ) end commit("transactions/#{}/credit.xml", request) end |
#scrub(transcript) ⇒ Object
126 127 128 129 130 131 132 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 126 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
101 102 103 104 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 101 def store(credit_card, = {}) retain = (.has_key?(:retain) ? [:retain] : true) save_card(retain, credit_card, ) end |
#supports_scrubbing? ⇒ Boolean
122 123 124 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 122 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
111 112 113 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 111 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)
86 87 88 89 90 91 92 93 94 95 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 86 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
76 77 78 |
# File 'lib/active_merchant/billing/gateways/spreedly_core.rb', line 76 def void(, = {}) commit("transactions/#{}/void.xml", '') end |