为什么 paypal-ipn 对我的 POST 仍然 return 无效?
Why does paypal-ipn still return INVALID to my POST?
我已经构建了一个简单的 paypal-ipn 侦听器:它侦听 paypal 向我发送的 http POST,读取其数据并将其发送回 paypal,如果接收到的数据与数据发送。
我正在使用 Paypal IPN 模拟器发送 IPN。
我基本上是从 here 复制代码,但我总是返回 INVALID。查看来自 stdin 的 rawinput 数据,我觉得我遗漏了一些关于编码的信息,但我对所有这些东西都太陌生了,无法弄清楚。
#!/usr/bin/python3
import sys
import cgi
import os; import json; import collections;import urllib; from urllib import parse
PAYPAL_URL = "https://sandbox.paypal.com/cgi-bin/webscr"
inputraw =sys.stdin.read()
f = open('test','w')
print("content-type: text/html\r\n\r\n")
formData ="cmd=_notify-validate&"+parse.unquote(inputraw)
f.write(formData+"\n")
req = urllib.request.Request(PAYPAL_URL, formData.encode())
req.add_header("Content-type", "application/x-www-form-urlencoded")
response = urllib.request.urlopen(req)
status = str(response.read())
f.write(status); f.write("\n")
if (not status == "b'VERIFIED'"):
f.write("OH NO")
else:
f.write("OH YES")
f.write("\n")
f.close()
我也不知道如何发送纯 HTTP 200 响应并使用 print("content-type: text/html\r\n\r\n")
行只是因为它有效。
我是通过答案找到的
事实证明:ipn-simulator 不(或不总是?)给出 VALID 响应,但沙盒帐户会。
我已经构建了一个简单的 paypal-ipn 侦听器:它侦听 paypal 向我发送的 http POST,读取其数据并将其发送回 paypal,如果接收到的数据与数据发送。
我正在使用 Paypal IPN 模拟器发送 IPN。
我基本上是从 here 复制代码,但我总是返回 INVALID。查看来自 stdin 的 rawinput 数据,我觉得我遗漏了一些关于编码的信息,但我对所有这些东西都太陌生了,无法弄清楚。
#!/usr/bin/python3
import sys
import cgi
import os; import json; import collections;import urllib; from urllib import parse
PAYPAL_URL = "https://sandbox.paypal.com/cgi-bin/webscr"
inputraw =sys.stdin.read()
f = open('test','w')
print("content-type: text/html\r\n\r\n")
formData ="cmd=_notify-validate&"+parse.unquote(inputraw)
f.write(formData+"\n")
req = urllib.request.Request(PAYPAL_URL, formData.encode())
req.add_header("Content-type", "application/x-www-form-urlencoded")
response = urllib.request.urlopen(req)
status = str(response.read())
f.write(status); f.write("\n")
if (not status == "b'VERIFIED'"):
f.write("OH NO")
else:
f.write("OH YES")
f.write("\n")
f.close()
我也不知道如何发送纯 HTTP 200 响应并使用 print("content-type: text/html\r\n\r\n")
行只是因为它有效。
我是通过答案找到的
事实证明:ipn-simulator 不(或不总是?)给出 VALID 响应,但沙盒帐户会。