0

我一直在尝试实现贝宝 IPN 侦听器,但它一直让我无效。我正在使用 python 金字塔框架和请求库。请帮忙。

PP_URL = "https://www.sandbox.paypal.com/cgi-bin/webscr"
parameters = {}
parameters = request.POST.copy()
parameters['cmd']='_notify-validate'
params = urlencode(parameters)

status = requests.post(PP_URL, params=params)

status = status.text

print status

谁能告诉我我做错了什么?

我也在使用https://developer.paypal.com/webapps/developer/applications/ipn_simulator

测试ipn监听器。

4

1 回答 1

0

可能发生的情况是:

此行将完全按原样复制已编码的 POST 请求:

parameters = request.POST.copy()

然后调用此行,它对编码的行进行编码:

params = urlencode(parameters)

这会导致双重编码,这将是有问题的。

您应该能够删除 params = urlencode(parameters) 行并且没问题。如果这不起作用,则对 POST 请求进行 urldecode,附加 notify-validate,然后再次进行 urlencode。

于 2013-03-13T16:07:56.327 回答