Stripe CardError handle django
// ошибка значения //
from django.shortcuts import redirect, render
import stripe
import stripe
stripe.api_key = 'sk_test_'
# Create your views here.
def index(request):
return render(request,'template/donate.html')
def thanks(request):
return render(request,'template/thanks.html')
def cargo(request):
card_num=request.POST['num_card']
month=request.POST['month']
year=request.POST['year']
cvv=request.POST['cvv']
if request.POST:
token = stripe.Token.create(
card={
"number": card_num,
"exp_month": month,
"exp_year": year,
"cvc": cvv
},
)
doc=stripe.Customer.create(
email=request.POST['email'],
name=request.POST['name'],
source=token
)
stripe.Charge.create(
customer=doc,
amount=request.POST['cantidad'],
currency='cad',
description= "DONATIVO"
)
return render(request,'template/thanks.html')
else:
return render(request,'template/index.html')
// обработка ошибки карты страйпа
как отобразить ошибки на html странице, потому что он перенаправляет меня на страницу ошибки, если клиент вставляет недействительный CVV или номер карты или дату истечения срока действия, я думаю, что я должен попробовать использовать stripe.error.CardError но документация не укладывается в голове //
Вы можете добиться этого, используя try except
try:
token = stripe.Token.create(
card={
"number": card_num,
"exp_month": month,
"exp_year": year,
"cvc": cvv
},
)
doc=stripe.Customer.create(
email=request.POST['email'],
name=request.POST['name'],
source=token
)
stripe.Charge.create(
customer=doc,
amount=request.POST['cantidad'],
currency='cad',
description= "DONATIVO"
)
return render(request,'template/thanks.html')
except (stripe.error.RateLimitError, stripe.error.StripeError,
stripe.error.AuthenticationError, stripe.error.CardError) as error:
print(error.user_message)
user_message содержит информацию об ошибке, которую вы можете показать пользователю и передать в шаблон