2016-12-12 11 views
3

これは私のビューアです。支払いゲートウェイ からの回答を得ようとしていますが、になる403禁止されたCSRFの確認に失敗しました。リクエストが中止されました。は、お支払い後、私は、ビューのCSRFトークンを免除が、まだその同じエラーを示すDjango CSRFの確認に失敗しました。 @csrf_exemptでもリクエストが中止されました。

from django.views.decorators.csrf import csrf_exempt 

@csrf_exempt 
def resp(request, encResp): 
    print " RESPONSE WITH CSRF EXEMPT " 
    ''' 
    Please put in the 32 bit alphanumeric key in quotes provided by CCAvenues. 
    ''' 
    workingKey = WorkingKey 
    decResp = decrypt(encResp,workingKey) 
    data = '<table border=1 cellspacing=2 cellpadding=2><tr><td>' 
    data = data + decResp.replace('=','</td><td>') 
    data = data.replace('&','</td></tr><tr><td>') 
    data = data + '</td></tr></table>' 

    html = '''\ 
    <html> 
     <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
      <title>Response Handler</title> 
     </head> 
     <body> 
      <center> 
       <font size="4" color="blue"><b>Response Page</b></font> 
       <br> 
       $response 
      </center> 
      <br> 
     </body> 
    </html> 
    ''' 
    fin = Template(html).safe_substitute(response=data) 
    return HttpResponse(fin) 

私はstackoverflowの上の多くのソリューションを読んでみましたが、まだカントはそれが正しい

私の主なurls.py取得

url(r'^booked/', include('booking.urls')), 
名前のアプリで

マイurls.py 予約

urlpatterns = patterns('', 
url(r'^responce-cc/', "booking.views.resp", name="cc_response_url"),) 

と私は支払いゲートウェイに渡していリダイレクトURLは

https://www.mysitename.com/booked/responce-cc/ 
+0

@csrf_exemptを使用すると、CSRF検証エラーが発生するとは思われません。あなたは何とか別のビューを呼び出す必要があります。 – RemcoGerlich

+0

いいえ、私は、ビューの正しいURLを持っているが、まだ同じエラーが発生します – Bijoy

+0

まだエラーはどこかにあります。たぶんurlconfとあなたが呼んでいるURL全体を投稿しますか? – RemcoGerlich

答えて

-1

は、本体との間のどこか{% csrf_token %}を追加することです。

+0

応答は支払いゲートウェイ – Bijoy

0
from ccavutil import encrypt,decrypt 
from string import Template 
from django.http import HttpResponse 

def res(encResp): 
''' 
Please put in the 32 bit alphanumeric key in quotes provided by CCAvenues. 
''' 
workingKey = 'WorkingKey' 
decResp = decrypt(encResp,workingKey) 
data = '<table border=1 cellspacing=2 cellpadding=2><tr><td>' 
data = data + decResp.replace('=','</td><td>') 
data = data.replace('&','</td></tr><tr><td>') 
data = data + '</td></tr></table>' 

html = '''\ 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Response Handler</title> 
    </head> 
    <body> 
     <center> 
      <font size="4" color="blue"><b>Response Page</b></font> 
      <br> 
      $response 
     </center> 
     <br> 
    </body> 
</html> 
''' 
fin = Template(html).safe_substitute(response=data) 
return HttpResponse(fin) 

の場所ですべてを持っているために、上記のコードを使用してください! :)

+0

から生成され、トークンを追加できません。これは私が書いたのと同じコードで、Template、HttpResponseをインポートして解読しました。 – Bijoy

関連する問題