任何使用PayPal IPN的python示例

时间:2015-10-09 03:18:18

标签: python paypal paypal-ipn

我在使用Paypal的IPN时遇到问题。我已在我的卖家帐户上启用了IPN。付款结束后,我会被定向到感谢页面。但是我在notify_url中指定的后端实际上从未实际触及"这就是我无法更新数据库的原因。 :(请帮帮我!!

2 个答案:

答案 0 :(得分:2)

您可能需要按照IPN Simulator上的此说明测试您的IPN网址 第一。

如果模拟器出现4XX / 5XX错误,或者您的服务器访问日志表明没有"触摸"从PayPal,您可能需要对您的服务器防火墙/路由设置进行故障排除,确保它不会将PayPal域或IP地址列入黑名单。

答案 1 :(得分:0)

这是我工作的python中最简单的代码。 它主要来自:https://flyingspaniel.blogspot.de/2014/12/do-frameworks-get-in-way.html,我几乎没有变化。

虽然很重要:IPN Verification只在我测试时通过沙盒而不通过IPN模拟器工作!

#!/usr/bin/python3
import sys
import cgi
import requests
import os; import json; import collections;
import urllib; from urllib import parse

inputraw =sys.stdin.read()

f = open('logfile','w')

print("content-type: text/html\r\n\r\n")

PAYPAL_URL = "https://sandbox.paypal.com/cgi-bin/webscr"

formData ="cmd=_notify-validate&"+ parse.unquote(inputraw)

f.write(formData); f.write("\n") # write into file 1st data package from paypal

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) # write back into file what you received from paypal the 2nd time
f.write("\n")

if (not status == "b'VERIFIED'"):
        f.write("OH NO")
    #ERROR
else:
    #HERE WE WILL TRIGGER STUFF WITH THE DATA FROM PAYPAL
    f.write("OH YES")

f.write("\n")
f.close()