我正在尝试使用 PayPal 实现一个简单的在线支付系统,但是我已经尝试了我所知道的一切,但仍然收到无效响应。
我知道这并不简单,因为在使用 IPN 模拟器时我得到了一个 VERIFIED 响应。我已经尝试先将这些项目放入一个字典中,我已经尝试修复编码,但仍然没有。PayPal 表示无效响应的原因可能是:
- 发送错误的物品或错误的顺序(很确定不是这个)
- 发送到错误的地址(绝对不是这个)
- 项目编码不正确(我不认为是这个,在贝宝和我的脚本上都将编码设置为 UTF-8)
以下是相关的片段:
f = cgi.FieldStorage()
newparams = 'cmd=_notify-validate'
for key in f.keys():
val = f[key].value
newparams += '&' + urlencode({key: val.encode('utf-8')})
req = urllib2.Request(PP_URL, newparams)
req.add_header("Content-type", "application/x-www-form-urlencoded")
http = urllib2.urlopen(req)
ret = http.read()
fi.write(ret + '\n')
if ret == 'VERIFIED':
#*do stuff*