Как сделать так, чтобы на страницу можно было попасть только через перенаправление со страницы сессии чекаута 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_idURLGETзапроса; - HTTP заголовок
Referer.
С помощью этих подсказок вы можете включить свою креативность и реализовать, например, следующее:
- проверяет, существует ли сессия с
session_id; - записываем в
.htaccessфайл некоторые разрешающие / запрещающие / перенаправляющие правила, основанные наReferrerзначении.
Удачи!