Я пытаюсь интегрировать платежную систему 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
модели, которая у меня есть, поэтому вам придется заменить эти значения своими спецификациями.