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 [],
 | 
					                tax_rates=[stripe_tax_rate.tax_rate_id] if stripe_tax_rate else [],
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            stripe_subscription_obj = subscription_result.get('response_object')
 | 
					            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
 | 
					            # Check if the subscription was approved and is active
 | 
				
			||||||
            if (stripe_subscription_obj is None
 | 
					            if (stripe_subscription_obj is None
 | 
				
			||||||
                    or stripe_subscription_obj.status != 'active'):
 | 
					                    or stripe_subscription_obj.status != 'active'):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue