【问题标题】:Any python example working with PayPal IPN使用 PayPal IPN 的任何 python 示例
【发布时间】:2016-01-06 21:00:11
【问题描述】:

我在使用 Paypal 的 IPN 时遇到问题。我已经在我的卖家账户上启用了 IPN。一旦付款通过,我会被定向到感谢页面。但是我在 notify_url 中指定的后端实际上从未真正获得“触摸”,这就是我无法更新数据库的原因。 :(请帮帮我!!

【问题讨论】:

    标签: python paypal paypal-ipn


    【解决方案1】:

    这是我开始工作的最简单的 Python 代码。 大部分来自:https://flyingspaniel.blogspot.de/2014/12/do-frameworks-get-in-way.html,我的改动不大。

    虽然很重要:当我测试时,IPN 验证只通过沙盒而不是通过 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()
    

    【讨论】:

      【解决方案2】:

      您可能希望按照IPN Simulator 上的说明测试您的 IPN URL 第一的。

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

      【讨论】:

        猜你喜欢
        • 2013-06-28
        • 2010-10-15
        • 2012-12-10
        • 2013-06-19
        • 2012-05-15
        • 2017-03-19
        • 2013-04-26
        • 2012-12-28
        • 1970-01-01
        相关资源
        最近更新 更多