Я получаю ошибку значения при получении значения идентификатора клиента из запроса в ссылке, которая находится в файле кассы. Я использую платежный шлюз razorpay.

Я использую фреймворк django и получаю ошибку значения при использовании платежного шлюза razorpay введите описание изображения здесь

**Это модели **

class Payment(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    amount = models.FloatField()
    razorpay_order_id = models.CharField(max_length=100,blank = True , null = True)
    razorpay_payment_status = models.CharField(max_length=100,blank = True , null = True)
    razorpay_payment_id = models.CharField(max_length=100,blank = True , null = True)
    paid = models.BooleanField(default = False)

class OrderPlaced(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    #cid = models.ForeignKey(Payment,on_delete=models.CASCADE)
    customer = models.ForeignKey(Customer,on_delete=models.CASCADE)
    product = models.ForeignKey(Product,on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField(default=1)
    ordered_date = models.DateField(auto_now_add = True)
    status = models.CharField(max_length = 50,choices = STATUS_CHOICES,default = 'Pending')
    payment = models.ForeignKey(Payment, on_delete=models.CASCADE,default ="")
    @property
    def total_cost(self):
        return self.quantity*self.product.discounted_price

Это html-код

Это функции просмотра

class checkout(View):
    def get(self,request):
        user = request.user
        add = Customer.objects.filter(user=user)
        cart_items = Cart.objects.filter(user=user)
        amount=0
        for p in cart_items:
            value = p.quantity*p.product.discounted_price
            amount = amount + value
        totalamount = amount + 40
        razoramount = int(totalamount * 100)
        client = razorpay.Client(auth=(settings.RAZOR_KEY_ID, settings.RAZOR_KEY_SECRET))
        data = { "amount": razoramount, "currency": "INR", "receipt": "order_rcptid_12",  'payment_capture': 1 }
        payment_response = client.order.create(data=data)
        print(payment_response)
        order_id = payment_response['id']
        order_status = payment_response['status']
        print(order_id)
        if order_status == 'created':
            payment = Payment(
                user=user,
                amount=totalamount,
                razorpay_order_id=order_id,
                razorpay_payment_status=order_status
            )
            payment.save()
        return render(request,'app/checkout.html',locals())
    
def payment_done(request):
    order_id = request.GET.get('order_id')
    payment_id = request.GET.get('payment_id')
    cust_id = str(request.GET.get('cust_id'))
    user = request.user
    print("pid=",payment_id,"oid=",order_id)
    #Payment.objects.create(razorpay_order_id=order_id, razorpay_payment_id=payment_id, cust_id=cust_id)
    customer = Customer.objects.get(id=cust_id)
    payment = Payment.objects.get(razorpay_order_id=order_id)
    payment.paid = True
    payment.razorpay_payment_id = payment_id
    cart = Cart.objects.filter(user=user)
    payment.save()
    for c in cart:
        OrderPlaced(user=user,customer=customer,product=c.product,quantity=c.quantity,payment=payment).save()
        c.delete()
    return redirect('orders')


Я хочу гвитировать id заказа cust_id id платежа и т.д. из метода get и сохранять в базе данных после завершения оплаты

Пожалуйста, помогите мне решить эту ошибку

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