HTTPSConnectionPool(host='api.razorpay.com', port=443): 超出最大重试次数,网址为: /v1/orders



我正在用Django开发一个社交媒体/电子商务web应用程序。我想在网站上添加一个购买产品的支付网关,我使用的是"Razorpay"。我将其整合到我的应用程序中,但我想将交易相关的细节存储在一个名为"TransactionDetails"的模型中。为此,我在视图中调用一个处理Razorpay网关的新函数。它创建模型的实例并保存它。但是由于某种原因,当我调用这个函数时,我得到了这个错误,请帮助我了解发生了什么。

这是我的观点:

from django.shortcuts import render, redirect
import razorpay
from django.views.decorators.csrf import csrf_exempt
from weShare.settings import razorpay_id, razorpay_secret_key
from django.contrib.auth.mixins import UserPassesTestMixin, LoginRequiredMixin
from django.urls import reverse_lazy
from social.models import *
from social.forms import *
from .models import TransactionDetails
from social.models import UserProfile
client = razorpay.Client(auth=(razorpay_id, razorpay_secret_key))
def home(request, pk):
rentee = UserProfile.objects.get(user=request.user)
renteeName = rentee.user
renteeLocation = rentee.location
post = Post.objects.get(pk=pk)
renter = post.author
product = post.productName
subPeriod = post.subscriptionPeriod
montlycharge = post.productMonthlyCharge
loc = rentee.location
order_amount = post.deposite*100
order_currency = 'INR'
order_receipt = 'order_rcptid_11'
notes = {'Shipping address': 'Bommanahalli, Bangalore'}   # OPTIONAL
payment_order = client.order.create(dict(amount=order_amount, currency=order_currency, payment_capture=1))
payment_order_id = payment_order['id']
createTransaction(request, rentee, pk, payment_order_id) # here

context ={
'amount' : 100,
'razorpay_id' : razorpay_id,
'order_id' : payment_order_id,
'razorpay_secret_key' : razorpay_secret_key,
'renter' : renter,
'product' : product,
'subPeriod' : subPeriod,
'montlycharge' : montlycharge,
'order_amount' : order_amount/100,
}
return render(request, 'paymentgateway/index.html', context)
def createTransaction(request, rentee, pk, payment_order_id):
post = Post.objects.get(pk=pk)
renter = post.author
product = post.productName
subPeriod = post.subscriptionPeriod
montlycharge = post.productMonthlyCharge
loc = rentee.location
order_amount = post.deposite*100
#Inserting data in TrasactionDetails object
transaction = TransactionDetails(rentee=request.user, product=product, renter=renter, subPeriod=subPeriod, monthlyCharge=montlycharge, deposite=order_amount, address=loc, order_id=payment_order_id)
transaction.save()

model.py:

from django.db import models
from social.models import *
from django.contrib.auth.models import User
# Create your models here.
class TransactionDetails(models.Model):
rentee = models.ForeignKey(User, on_delete=models.CASCADE)
product = models.CharField(max_length=200, default="")
renter = models.CharField(max_length=200, default="")
subPeriod = models.IntegerField(default=3)
monthlyCharge = models.IntegerField(default=100)
deposite = models.IntegerField()
address = models.CharField(max_length=300)
order_id = models.CharField(max_length=100, default="failed")
def __str__(self):
return '%s %s'%(self.product, self.renter)

此错误是由于您的互联网连接。检查你的网络连接。我们正在调用razorpay api,所以我们需要互联网连接。当我的互联网连接消失时,我得到了同样的错误,但当我的互联网恢复正常工作时。

最新更新