From 1cf66abbffecb4abc4b9b53b71c54b232a91c75a Mon Sep 17 00:00:00 2001 From: rizwanisready Date: Thu, 1 Aug 2024 15:48:06 +0530 Subject: [PATCH] auto recurring testing phase 13 --- manage_subscriptions/views.py | 41 ++++++++++---------------------- templates/stripe_html/index.html | 2 ++ 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/manage_subscriptions/views.py b/manage_subscriptions/views.py index d1da35d..3fb9135 100644 --- a/manage_subscriptions/views.py +++ b/manage_subscriptions/views.py @@ -677,7 +677,8 @@ def validate_coupon(request): if coupon.coupon_id: try: stripe_coupon = stripe.Coupon.retrieve(coupon.coupon_id) - return JsonResponse({"message": stripe_coupon}, status=200) + print("stripe_coupon: ", stripe_coupon) + return JsonResponse({"data": {"coupon": stripe_coupon}}, status=200) except stripe.error.InvalidRequestError: return JsonResponse( {"error": f"Invalid coupon code: {coupon_code}"}, status=400 @@ -730,29 +731,16 @@ def create_checkout_session(request): # Coupon Handling if coupon_code: try: - coupon = Coupon.objects.get(coupon_code=coupon_code) - if coupon.is_valid() and coupon.coupon_id: - # Retrieving the coupon from Stripe - try: - stripe_coupon = stripe.Coupon.retrieve(coupon.coupon_id) - session_data["discounts"] = [{"coupon": stripe_coupon.id}] - except stripe.error.InvalidRequestError: - return JsonResponse( - {"error": f"Invalid coupon code: {coupon_code}"}, status=400 - ) - except stripe.error.StripeError as e: - return JsonResponse( - {"error": f"Stripe error: {str(e)}"}, status=400 - ) - else: - return JsonResponse( - { - "error": "Either coupon is Invalid/Expired or coupon not related with stripe." - }, - status=400, - ) - except Coupon.DoesNotExist: - return JsonResponse({"error": "Coupon not found."}, status=404) + stripe_coupon = stripe.Coupon.retrieve(coupon.coupon_id) + session_data["discounts"] = [{"coupon": stripe_coupon.id}] + except stripe.error.InvalidRequestError: + return JsonResponse( + {"error": f"Invalid coupon code: {coupon_code}"}, status=400 + ) + except stripe.error.StripeError as e: + return JsonResponse( + {"error": f"Stripe error: {str(e)}"}, status=400 + ) # Create a Transaction object with status INITIATE transaction = Transaction.objects.create( @@ -790,10 +778,7 @@ def create_checkout_session(request): }, "unit_amount": int( subscription.amount * 100 - ), # Amount in cents - "recurring": { - "interval": "month", # or 'year', etc. - }, + ), }, "quantity": 1, } diff --git a/templates/stripe_html/index.html b/templates/stripe_html/index.html index 5e2b7a4..6972ccc 100644 --- a/templates/stripe_html/index.html +++ b/templates/stripe_html/index.html @@ -565,6 +565,8 @@ }) .then(data => { // Creating checkout session for the selected subscription + console.log("Data:", data); + console.log("Data.CouponCode:", data["coupon"]); fetch(stripeFinalUrl, { method: "POST", headers: {