【问题标题】:Why does paypal-ipn still return INVALID to my POST?为什么 paypal-ipn 仍然向我的 POST 返回 INVALID?
【发布时间】:2016-11-02 10:51:09
【问题描述】:

我已经构建了一个简单的 paypal-ipn 监听器:它监听 paypal 向我发送一个 http POST,读取它的数据并将其发送回 paypal,如果接收到的数据与发送的数据匹配,它应该回答 VALID。

我正在使用 Paypal IPN-Simulator 发送 IPN。

我基本上是从here 复制代码并且我一直返回无效。查看来自标准输入的原始输入数据,我觉得我在这里缺少关于编码的一些东西,但我对所有这些东西都太陌生了,无法弄清楚。

#!/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") 行只是因为它有效。

【问题讨论】:

    标签: python paypal paypal-ipn urlencode server-side-scripting


    【解决方案1】:

    我是通过PayPal IPN always return INVALID even when I follow PayPal sample code to the word?的答案找到的

    事实证明:ipn-simulator 不(或不总是?)给出有效响应,但沙盒帐户会。

    【讨论】:

      猜你喜欢
      • 2016-03-12
      • 2016-10-10
      • 2017-04-24
      • 2014-08-31
      • 2012-07-29
      • 1970-01-01
      • 2015-10-14
      • 2023-03-30
      • 2015-08-14
      相关资源
      最近更新 更多