首页 > 解决方案 > 我正在尝试集成 RazorPay 支付系统

问题描述

razorpay 文档的以下代码给出了客户端用户的价值和要支付的金额。如何获取数据库中模型中保存的金额和用户名。?
就像,我有一个订单表,并且在模型类中定义了一个函数来获取整个订单的总金额(例如,我有两个要购买的物品,'get_total' 函数返回我的总订单金额)

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

标签: pythondjangorazorpay

解决方案


检查一下,这是一个肯定会奏效的片段。

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我拥有的另一个模型的设置,因此您必须用您的规范替换这些值。


推荐阅读