Я пытаюсь интегрировать платежную систему RazorPay.

Нижеприведенный код razorpay docs выдает в значении клиент-пользователь и сумму к оплате. Как я могу взять сумму и имя пользователя, сохраненные в модели в базе данных?
. Например, у меня есть таблица заказов, и внутри класса модели определена функция для получения общей суммы всего заказа (например, у меня есть два товара для покупки, и функция 'get_total' возвращает мне общую сумму заказа)

if request.method == "POST":
        name = request.POST.get('name')
        amount = 50000

Проверьте это - это сниппет, который точно сработает.

class CheckoutIndex(View):
    template_name = 'web/checkout.html'
    
    def get(self, request, *args, **kwargs):
        order = Order.objects.get(pk = self.kwargs['order'])
        settings = SiteSettings.objects.all().first()


        # Razorpay client auth
        client = razorpay.Client(auth = (settings.razorpay_client_id, settings.razorpay_secret))
        
        if order.razorpay_order_id is None:    
            order_amount = order.total*100
            order_currency = settings.currency
            order_receipt = 'Reciept'
            notes = {'id': order.id, 'email': order.email_id, 'date':str(datetime.now()), 'amount': order.total, 'is_ios': order.is_ios, 'is_android': order.is_android}   # OPTIONAL
            data = {"amount":order_amount, "currency":order_currency, "receipt":order_receipt, "notes":notes, "payment_capture":'0'}
            razorpay_order = client.order.create(data = data)

            # Razorpay order inserted into database order
            order.razorpay_order_id = razorpay_order["id"]
            order.save()

        else:
            razorpay_order = client.order.fetch(order.razorpay_order_id)

        try:
            user = User.objects.get(username=order.email_id)
            user_exists = True
        except User.DoesNotExist:
            user_exists = False

        return render(request, self.template_name, {'settings':settings, 'order':order, 'razorpay_order': razorpay_order, 'user_exists':user_exists})

    def post(self, request, *args, **kwargs):
        o = self.kwargs['order']+ ' POST'
        
        settings = SiteSettings.objects.all().first()
        return render(request, self.template_name, {'settings':settings, 'order':o})

В нем есть некоторые модульные биты для настроек, которые взяты из другой SiteSettings модели, которая у меня есть, поэтому вам придется заменить эти значения своими спецификациями.

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