Как сделать так, чтобы на страницу можно было попасть только через перенаправление со страницы сессии чекаута stripe, в django?

Я хочу, чтобы страница (представление) была доступна только через перенаправление со страницы сессии stripe checkout, и не была доступна никаким другим способом.

Вот страница, к которой я хочу получить доступ только через перенаправление со страницы сессии stripe checkout:

   def successView(request):
       data = cartData(request)
       cartItems = data['cartItems']

       context = {'cartItems':cartItems}

       return render(request, 'store/success.html', context)

Вот страница сессии проверки stripe, которая перенаправляет на страницу:

class CreateCheckoutSessionView(View):
def post(self, request, *args, **kwargs):
    data = cartData(request)
    cartItems = data['cartItems']
    order = data['order']
    items = data['items']

    line_items_list=[]

    for item in items:
        quantity=item['quantity']
        price_stripe=item['product']['stripe-price']
        line_items_list.append(
            {
                'price': price_stripe,
                'quantity': quantity,
                
            }
            )
    
    checkout_session = stripe.checkout.Session.create(
        payment_method_types=['card'],
        shipping_address_collection={'allowed_countries': ['DK']},
        line_items=line_items_list,
        automatic_tax={
            'enabled': True,
        },
        mode="payment",
        success_url=YOUR_DOMAIN + 'success/',
        cancel_url=YOUR_DOMAIN + 'kurv/'
    )

    return redirect(checkout_session.url)

Конечно, решений может быть много, и вы можете найти их сами. Но чтобы найти решение, вам нужно понять, что ваш сервер знает о посетителе, перенаправленном со страницы оформления заказа Stripe. Вы можете использовать два параметра, чтобы определить, вернулся ли пользователь на ваш сайт после перенаправления со страницы оформления заказа Stripe:

  • параметр session_idURL GET запроса;
  • HTTP заголовок Referer.

С помощью этих подсказок вы можете включить свою креативность и реализовать, например, следующее:

  • проверяет, существует ли сессия с session_id ;
  • записываем в .htaccess файл некоторые разрешающие / запрещающие / перенаправляющие правила, основанные на Referrer значении.

Удачи!

Вернуться на верх