gpt4 book ai didi

python - 从 PayPal 的 Sandbox IPN 获得无效响应

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:22 25 4
gpt4 key购买 nike

我正在尝试使用 PayPal 实现一个简单的在线支付系统,但是我已经尝试了所有我知道的方法,但仍然收到无效响应。

我知道这并不简单,因为我在使用 IPN 模拟器时得到了 VERIFIED 响应。我试过先将这些项目放入字典中,我试过修复编码,但仍然一无所获。 PayPal 表示无效响应的原因可能是:

  • 发送错误的元素或顺序错误(很确定不是这个)
  • 发送到错误的地址(绝对不是这个)
  • 项目编码不正确(我不认为是这样,在 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*

最佳答案

顺序很关键。您必须按照 Paypal 指定的相同顺序进行验证。实现此目的的最简单方法是使用它们在以下位置提供的确切顺序:

def paypal_verify():
""" Returns false if the current request cannot be verified by paypal """
# Create verify param string from current query string
verify_string = "cmd=_notify_validate&" + cherrypy.request.query_string
req = urllib2.Request("http://www.paypal.com/cgi-bin/webscr", verify_string)
response = urllib2.urlopen(req)
result = response.read()
if response == "VERIFIED":
# All good
return True
# Fail
return False

如果您不使用 cherrypy,一些其他机制应该类似地可用于获取 Paypal 提供的查询字符串。

关于python - 从 PayPal 的 Sandbox IPN 获得无效响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com