Class: ActiveMerchant::Billing::BlueSnapGateway
- Defined in:
- lib/active_merchant/billing/gateways/blue_snap.rb
Constant Summary collapse
- TRANSACTIONS =
{ purchase: 'AUTH_CAPTURE', authorize: 'AUTH_ONLY', capture: 'CAPTURE', void: 'AUTH_REVERSAL', refund: 'REFUND' }
- CVC_CODE_TRANSLATOR =
{ 'MA' => 'M', 'NC' => 'U', 'ND' => 'P', 'NM' => 'N', 'NP' => 'S' }
- AVS_CODE_TRANSLATOR =
{ 'line1: U, zip: U, name: U' => 'I', 'line1: U, zip: U, name: M' => 'I', 'line1: U, zip: U, name: N' => 'I', 'line1: U, zip: M, name: U' => 'P', 'line1: U, zip: M, name: M' => 'P', 'line1: U, zip: M, name: N' => 'F', 'line1: U, zip: N, name: U' => 'O', 'line1: U, zip: N, name: M' => 'O', 'line1: U, zip: N, name: N' => 'O', 'line1: M, zip: U, name: U' => 'B', 'line1: M, zip: U, name: M' => 'B', 'line1: M, zip: U, name: N' => 'T', 'line1: M, zip: M, name: U' => 'M', 'line1: M, zip: M, name: M' => 'V', 'line1: M, zip: M, name: N' => 'H', 'line1: M, zip: N, name: U' => 'A', 'line1: M, zip: N, name: M' => 'O', 'line1: M, zip: N, name: N' => 'A', 'line1: N, zip: U, name: U' => 'C', 'line1: N, zip: U, name: M' => 'C', 'line1: N, zip: U, name: N' => 'C', 'line1: N, zip: M, name: U' => 'W', 'line1: N, zip: M, name: M' => 'L', 'line1: N, zip: M, name: N' => 'W', 'line1: N, zip: N, name: U' => 'N', 'line1: N, zip: N, name: M' => 'K', 'line1: N, zip: N, name: N' => 'N', }
- BANK_ACCOUNT_TYPE_MAPPING =
{ 'personal_checking' => 'CONSUMER_CHECKING', 'personal_savings' => 'CONSUMER_SAVINGS', 'business_checking' => 'CORPORATE_CHECKING', 'business_savings' => 'CORPORATE_SAVINGS' }
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
- #capture(money, authorization, options = {}) ⇒ Object
-
#initialize(options = {}) ⇒ BlueSnapGateway
constructor
A new instance of BlueSnapGateway.
- #purchase(money, payment_method, options = {}) ⇒ Object
- #refund(money, authorization, options = {}) ⇒ Object
- #scrub(transcript) ⇒ Object
- #store(payment_method, options = {}) ⇒ Object
- #store_credit_card(doc, payment_method) ⇒ Object
- #store_echeck(doc, payment_method) ⇒ Object
- #supports_scrubbing? ⇒ Boolean
- #verify(payment_method, options = {}) ⇒ Object
- #verify_credentials ⇒ Object
- #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 = {}) ⇒ BlueSnapGateway
Returns a new instance of BlueSnapGateway.
69 70 71 72 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 69 def initialize(={}) requires!(, :api_username, :api_password) super end |
Instance Method Details
#authorize(money, payment_method, options = {}) ⇒ Object
86 87 88 89 90 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 86 def (money, payment_method, ={}) commit(:authorize) do |doc| add_auth_purchase(doc, money, payment_method, ) end end |
#capture(money, authorization, options = {}) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 92 def capture(money, , ={}) commit(:capture, :put) do |doc| (doc, ) add_order(doc, ) end end |
#purchase(money, payment_method, options = {}) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 74 def purchase(money, payment_method, ={}) payment_method_details = PaymentMethodDetails.new(payment_method) commit(:purchase, :post, payment_method_details) do |doc| if payment_method_details.alt_transaction? add_alt_transaction_purchase(doc, money, payment_method_details, ) else add_auth_purchase(doc, money, payment_method, ) end end end |
#refund(money, authorization, options = {}) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 99 def refund(money, , ={}) commit(:refund, :put) do |doc| (doc, ) add_amount(doc, money, ) add_order(doc, ) end end |
#scrub(transcript) ⇒ Object
159 160 161 162 163 164 165 166 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 159 def scrub(transcript) transcript. gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]'). gsub(%r((<card-number>).+(</card-number>)), '\1[FILTERED]\2'). gsub(%r((<security-code>).+(</security-code>)), '\1[FILTERED]\2'). gsub(%r((<(?:public-)?account-number>).+(</(?:public-)?account-number>)), '\1[FILTERED]\2'). gsub(%r((<(?:public-)?routing-number>).+(</(?:public-)?routing-number>)), '\1[FILTERED]\2') end |
#store(payment_method, options = {}) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 118 def store(payment_method, = {}) payment_method_details = PaymentMethodDetails.new(payment_method) commit(:store, :post, payment_method_details) do |doc| add_personal_info(doc, payment_method, ) add_echeck_company(doc, payment_method) if payment_method_details.check? doc.send('payment-sources') do payment_method_details.check? ? store_echeck(doc, payment_method) : store_credit_card(doc, payment_method) end add_order(doc, ) end end |
#store_credit_card(doc, payment_method) ⇒ Object
131 132 133 134 135 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 131 def store_credit_card(doc, payment_method) doc.send('credit-card-info') do add_credit_card(doc, payment_method) end end |
#store_echeck(doc, payment_method) ⇒ Object
137 138 139 140 141 142 143 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 137 def store_echeck(doc, payment_method) doc.send('ecp-info') do doc.send('ecp') do add_echeck(doc, payment_method) end end end |
#supports_scrubbing? ⇒ Boolean
155 156 157 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 155 def supports_scrubbing? true end |
#verify(payment_method, options = {}) ⇒ Object
114 115 116 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 114 def verify(payment_method, ={}) (0, payment_method, ) end |
#verify_credentials ⇒ Object
145 146 147 148 149 150 151 152 153 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 145 def verify_credentials begin ssl_get(url.to_s, headers) rescue ResponseError => e return false if e.response.code.to_i == 401 end true end |
#void(authorization, options = {}) ⇒ Object
107 108 109 110 111 112 |
# File 'lib/active_merchant/billing/gateways/blue_snap.rb', line 107 def void(, ={}) commit(:void, :put) do |doc| (doc, ) add_order(doc, ) end end |