条纹 CardError 处理 django

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 有关于错误的信息,您可以向用户显示这些信息并呈现给模板