Class: Gateway::StripeGateway
- Inherits:
-
Gateway
- Object
- Gateway
- Gateway::StripeGateway
- Defined in:
- app/models/spree/gateway/stripe_gateway.rb
Constant Summary collapse
- CARD_TYPE_MAPPING =
{ 'American Express' => 'american_express', 'Diners Club' => 'diners_club', 'Visa' => 'visa' }
Instance Method Summary collapse
- #authorize(money, creditcard, gateway_options) ⇒ Object
- #cancel(response_code) ⇒ Object
- #capture(money, response_code, gateway_options) ⇒ Object
- #create_profile(payment) ⇒ Object
- #credit(money, creditcard, response_code, gateway_options) ⇒ Object
- #method_type ⇒ Object
- #payment_profiles_supported? ⇒ Boolean
- #provider_class ⇒ Object
- #purchase(money, creditcard, gateway_options) ⇒ Object
- #void(response_code, creditcard, gateway_options) ⇒ Object
Instance Method Details
#authorize(money, creditcard, gateway_options) ⇒ Object
28 29 30 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 28 def (money, creditcard, ) provider.(*(money, creditcard, )) end |
#cancel(response_code) ⇒ Object
44 45 46 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 44 def cancel(response_code) provider.void(response_code, {}) end |
#capture(money, response_code, gateway_options) ⇒ Object
32 33 34 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 32 def capture(money, response_code, ) provider.capture(money, response_code, ) end |
#create_profile(payment) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 48 def create_profile(payment) return unless payment.source.gateway_customer_profile_id.nil? = { email: payment.order.email, login: preferred_secret_key, }.merge! address_for(payment) source = update_source!(payment.source) if source.number.blank? && source.gateway_payment_profile_id.present? creditcard = source.gateway_payment_profile_id else creditcard = source end response = provider.store(creditcard, ) if response.success? payment.source.update_attributes!({ cc_type: payment.source.cc_type, # side-effect of update_source! gateway_customer_profile_id: response.params['id'], gateway_payment_profile_id: response.params['default_source'] || response.params['default_card'] }) else payment.send(:gateway_error, response.) end end |
#credit(money, creditcard, response_code, gateway_options) ⇒ Object
36 37 38 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 36 def credit(money, creditcard, response_code, ) provider.refund(money, response_code, {}) end |
#method_type ⇒ Object
12 13 14 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 12 def method_type 'stripe' end |
#payment_profiles_supported? ⇒ Boolean
20 21 22 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 20 def payment_profiles_supported? true end |
#provider_class ⇒ Object
16 17 18 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 16 def provider_class ActiveMerchant::Billing::StripeGateway end |
#purchase(money, creditcard, gateway_options) ⇒ Object
24 25 26 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 24 def purchase(money, creditcard, ) provider.purchase(*(money, creditcard, )) end |
#void(response_code, creditcard, gateway_options) ⇒ Object
40 41 42 |
# File 'app/models/spree/gateway/stripe_gateway.rb', line 40 def void(response_code, creditcard, ) provider.void(response_code, {}) end |