Handle SCA in dcl flow
This commit is contained in:
		
					parent
					
						
							
								676a358832
							
						
					
				
			
			
				commit
				
					
						4c7b9eaa52
					
				
			
		
					 1 changed files with 17 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -953,6 +953,23 @@ class OrderConfirmationView(DetailView, FormView):
 | 
			
		|||
                tax_rates=[stripe_tax_rate.tax_rate_id] if stripe_tax_rate else [],
 | 
			
		||||
            )
 | 
			
		||||
            stripe_subscription_obj = subscription_result.get('response_object')
 | 
			
		||||
            logger.debug(stripe_subscription_obj)
 | 
			
		||||
            latest_invoice = stripe.Invoice.retrieve(
 | 
			
		||||
                stripe_subscription_obj.latest_invoice)
 | 
			
		||||
            ret = stripe.PaymentIntent.confirm(
 | 
			
		||||
                latest_invoice.payment_intent
 | 
			
		||||
            )
 | 
			
		||||
            if ret.status == 'requires_action':
 | 
			
		||||
                pi = stripe.PaymentIntent.retrieve(
 | 
			
		||||
                    latest_invoice.payment_intent
 | 
			
		||||
                )
 | 
			
		||||
                context = {
 | 
			
		||||
                    'sid': stripe_subscription_obj.id,
 | 
			
		||||
                    'payment_intent_secret': pi.client_secret,
 | 
			
		||||
                    'STRIPE_PUBLISHABLE_KEY': settings.STRIPE_API_PUBLIC_KEY,
 | 
			
		||||
                    'showSCA': True
 | 
			
		||||
                }
 | 
			
		||||
                return JsonResponse(context)
 | 
			
		||||
            # Check if the subscription was approved and is active
 | 
			
		||||
            if (stripe_subscription_obj is None
 | 
			
		||||
                    or stripe_subscription_obj.status != 'active'):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue