#30503: ConnectionResetError: [WinError 10054] An existing connection was 
forcibly
closed by the remote host
-----------------------------------------+--------------------------------
               Reporter:  msrajkumar95   |          Owner:  nobody
                   Type:  Bug            |         Status:  new
              Component:  HTTP handling  |        Version:  2.2
               Severity:  Normal         |       Keywords:  paytm payments
           Triage Stage:  Unreviewed     |      Has patch:  0
    Needs documentation:  0              |    Needs tests:  0
Patch needs improvement:  0              |  Easy pickings:  0
                  UI/UX:  0              |
-----------------------------------------+--------------------------------
 I am getting below issue while processing paytm payments and returning
 back to my Django application.
 Below is my code in views.py

 {{{
 from django.http import HttpResponse
 from django.shortcuts import render
 from django.views.decorators.csrf import csrf_exempt
 from django.contrib.auth.decorators import login_required
 from django.conf import settings
 from paytm import checksum
 from paytm.models import PaymentHistory

 @login_required
 def payment(request):
     CALLBACK_URL = settings.HOST_URL + settings.PAYTM_CALLBACK_URL
     order_id = checksum.__id_generator__()

     bill_amount = request.POST['amount']
     if bill_amount:
         data_dict = {
                     'MID':settings.PAYTM_MERCHANT_ID,
                     'ORDER_ID':order_id,
                     'TXN_AMOUNT': bill_amount,
                     'CUST_ID':request.user.email,
                     'INDUSTRY_TYPE_ID':settings.PAYTM_INDUSTRY_TYPE,
                     'WEBSITE': settings.PAYTM_WEBSITE,
                     'CHANNEL_ID':'WEB',
                     'CALLBACK_URL':CALLBACK_URL,
                 }
         param_dict = data_dict
         param_dict['CHECKSUMHASH'] = checksum.generate_checksum(data_dict,
 settings.PAYTM_MERCHANT_KEY)
         return
 render(request,"paytm/payment.html",{'paytmdict':param_dict})
     return HttpResponse("Bill Amount Could not find. ?bill_amount=10")

 @login_required
 @csrf_exempt
 def response(request):
     if request.method == 'GET':
         return render(request, 'paytm/home.html')
     elif request.method == "POST":
         data_dict = {}
         for key in request.POST:
             data_dict[key] = request.POST[key]
         verify = checksum.verify_checksum(data_dict,
 settings.PAYTM_MERCHANT_KEY, data_dict['CHECKSUMHASH'])
         if verify:
             for key in request.POST:
                 if key == "BANKTXNID" or key == "RESPCODE":
                     if request.POST[key]:
                         data_dict[key] = int(request.POST[key])
                     else:
                         data_dict[key] = 0
                 elif key == "TXNAMOUNT":
                     data_dict[key] = float(request.POST[key])
             PaymentHistory.objects.create(user=request.user, **data_dict)
             return
 render(request,"paytm/response.html",{"paytm":data_dict})
         else:
             return HttpResponse("checksum verify failed")
     return HttpResponse(status=200)
 }}}

 Code in urls.py

 {{{
 from django.urls import path
 from paytm import views

 urlpatterns = [
     path('', views.response, name='home'),
     path('payment/', views.payment, name='payment'),
     path('response/', views.response, name='response'),
 ]
 }}}

 Here's my trace back exception details.

 {{{
 [12/May/2019 08:38:35] "POST /paytm/payment/ HTTP/1.1" 200 4005
 ----------------------------------------
 Exception happened during processing of request from ('127.0.0.1', 54543)
 Traceback (most recent call last):
   File "C:\Python\Python37\lib\socketserver.py", line 647, in
 process_request_thread
     self.finish_request(request, client_address)
   File "C:\Python\Python37\lib\socketserver.py", line 357, in
 finish_request
     self.RequestHandlerClass(request, client_address, self)
   File "C:\Python\Python37\lib\socketserver.py", line 717, in __init__
     self.handle()
   File "C:\Python\Python37\lib\site-
 packages\django\core\servers\basehttp.py", line
 171, in handle
     self.handle_one_request()
   File "C:\Python\Python37\lib\site-
 packages\django\core\servers\basehttp.py", line
 179, in handle_one_request
     self.raw_requestline = self.rfile.readline(65537)
   File "C:\Python\Python37\lib\socket.py", line 589, in readinto
     return self._sock.recv_into(b)
 ConnectionResetError: [WinError 10054] An existing connection was forcibly
 closed by
 the remote host
 ----------------------------------------
 [12/May/2019 08:39:25] "POST /paytm/response/ HTTP/1.1" 200 3154
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30503>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/055.443a6da33c36d9b155cc26190254dabc%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to