2015-01-22 6 views
0

나는 django, python 및 request를 사용하고 있습니다. 다음 코드로 IPN 메시지를 확인하려고 할 때 :페이팔 IPN 메시지 INVALID

data = self.request.POST.copy() 
data['cmd'] = "_notify-validate" 
url = "" 

if settings.DEBUG: 
    url = settings.PAYMENT['paypal']['sandbox_ipn_endpoint'] 
else: 
    url = settings.PAYMENT['paypal']['live_ipn_endpoint'] 

self.logger.debug("Let us try to validate IPN message.") 

response = requests.post(url, data=data) 

print response.text 

항상 라이브 종점에서 응답이 없습니다. 어떤 아이디어? 나는 그것이 다음 코드를 사용하여 수행되었다

+0

당신은 (는) 자기 도움이 할 수있는 우리에게 말하고 있지 많이 있습니다. 샌드 박스 끝점에서 유효한 응답을 얻습니까? 작성 및 전송되는 실제 URL 및 데이터는 무엇입니까? 실시간 및 샌드 박스 ID (키)를 올바르게 관리하고 있습니까? – geewiz

+0

예, 유효한 응답을 샌드 박스에서받습니다. 그렇습니다. 유효한 응답을 샌드 박스에서 예 키가 올바른 것입니다. 그렇지 않으면 인증 오류가 발생합니다. –

+0

PayPal로받은 데이터를 정확하게 다시 게시해야합니다. URL 인코딩과 모든 것이 정확히 동일해야합니다. –

답변

0

:

query_string = self.request.body.decode('ascii') 
response = urlopen(url, b("cmd=_notify-validate&%s" % query_string)).read()