Compare commits

...

2 Commits

Author SHA1 Message Date
Matt-Yorkley
3ea9dcc719 Set :execute_threed option to explicitly handle 3DS responses 2021-06-08 10:26:59 +01:00
Matt-Yorkley
b0eb0f4a24 Remove Stripe Decorator
The method being overridden here is the same in the upstream
2021-06-08 10:26:56 +01:00
2 changed files with 1 additions and 20 deletions

View File

@@ -5,7 +5,6 @@ require 'stripe/credit_card_cloner'
require 'stripe/authorize_response_patcher'
require 'stripe/payment_intent_validator'
require 'active_merchant/billing/gateways/stripe_payment_intents'
require 'active_merchant/billing/gateways/stripe_decorator'
module Spree
class Gateway
@@ -112,6 +111,7 @@ module Spree
options[:description] = "Spree Order ID: #{gateway_options[:order_id]}"
options[:currency] = gateway_options[:currency]
options[:stripe_account] = stripe_account_id
options[:execute_threed] = true # Handle 3DS responses
options
end

View File

@@ -1,19 +0,0 @@
# frozen_string_literal: true
# Here we bring commit 823faaeab0d6d3bd75ee037ec894ab7c9d95d3a9 from ActiveMerchant v1.98.0
# This is needed to make StripePaymentIntents work correctly
# This can be removed once we upgrade to ActiveMerchant v1.98.0
ActiveMerchant::Billing::StripeGateway.class_eval do
def authorization_from(success, url, method, response)
return response.fetch('error', {})['charge'] unless success
if url == 'customers'
[response['id'], response.dig('sources', 'data').first&.dig('id')].join('|')
elsif method == :post &&
(url.match(%r{customers/.*/cards}) || url.match(%r{payment_methods/.*/attach}))
[response['customer'], response['id']].join('|')
else
response['id']
end
end
end