diff --git a/padelclub_backend/settings_app.py b/padelclub_backend/settings_app.py index 97d1372..891198a 100644 --- a/padelclub_backend/settings_app.py +++ b/padelclub_backend/settings_app.py @@ -45,8 +45,7 @@ QR_CODE_CACHE_ALIAS = 'qr-code' STRIPE_CURRENCY = 'eur' # Add managers who should receive internal emails SHOP_MANAGERS = [ - ('Razmig Sarkissian', 'razmig@padelclub.app'), - # ('Shop Admin', 'shop-admin@padelclub.app'), + ('Shop Admin', 'shop-admin@padelclub.app'), # ('Laurent Morvillier', 'laurent@padelclub.app'), # ('Xavier Rousset', 'xavier@padelclub.app'), ] diff --git a/shop/stripe_utils.py b/shop/stripe_utils.py index 99fb354..a6a5934 100644 --- a/shop/stripe_utils.py +++ b/shop/stripe_utils.py @@ -25,12 +25,13 @@ class StripeService: mode_str = "TEST" if self.is_test_mode else "LIVE" logger.debug(f"Initialized StripeService in {mode_str} mode") - def create_checkout_session(self, line_items, success_url, cancel_url, metadata=None): + def create_checkout_session(self, customer_email, line_items, success_url, cancel_url, metadata=None): """Create a Stripe Checkout Session for one-time payments""" if self.is_test_mode: logger.info(f"Creating checkout session in TEST mode with metadata: {metadata}") session = stripe.checkout.Session.create( + customer_email=customer_email, payment_method_types=['card'], line_items=line_items, mode='payment', @@ -67,24 +68,3 @@ class StripeService: # Create a singleton instance for import and use throughout the app stripe_service = StripeService() - -# For backward compatibility, expose some functions directly -def create_payment_intent(amount, currency=None, metadata=None): - """Legacy function for backward compatibility""" - if currency is None: - currency = stripe_service.currency - - return stripe.PaymentIntent.create( - amount=amount, - currency=currency, - metadata=metadata or {}, - ) - -def create_checkout_session(line_items, success_url, cancel_url, metadata=None): - """Legacy function for backward compatibility""" - return stripe_service.create_checkout_session( - line_items=line_items, - success_url=success_url, - cancel_url=cancel_url, - metadata=metadata or {}, - ) diff --git a/shop/views.py b/shop/views.py index dcf6089..33b08e8 100644 --- a/shop/views.py +++ b/shop/views.py @@ -50,15 +50,24 @@ def _create_stripe_checkout_session(request, order, line_items): 'order_id': str(order.id), } + # Set up customer information + customer_email = None + # Add user info to metadata if available if request.user.is_authenticated: metadata['user_id'] = str(request.user.id) + customer_email = request.user.email + elif order.guest_user: + metadata['guest_email'] = order.guest_user.email + customer_email = order.guest_user.email elif 'guest_email' in request.session: metadata['guest_email'] = request.session.get('guest_email', '') + customer_email = request.session.get('guest_email', '') try: # Use the service to create the session checkout_session = stripe_service.create_checkout_session( + customer_email=customer_email, line_items=line_items, success_url=success_url, cancel_url=cancel_url,