PayPal难以捉摸的IPN历史在哪里?

时间:2014-04-09 10:35:02

标签: paypal paypal-ipn paypal-sandbox

我的服务器上的IPN接收器已成功接收IPN并将其重新发布回PayPal的服务器(https://www.paypal.com/cgi-bin/webscr)以进行验证。我正在使用IPN模拟器对其进行测试,并始终收到INVALID。所以我完成了大部分工作并让服务器说话。需要进行一些精细抛光,我无法调试,因为我没有反馈。我在哪里可以得到这些反馈?

PayPal的文档声明如下:

" 在paypal.com上查看您的IPN历史记录。 您的IPN历史记录告诉您PayPal是否发送了给定的IPN消息以及您的侦听器是否响应了该消息。此页面还可能提供有关运行侦听器的服务器的状态的信息。如有必要,您可以请求PayPal通过IPN历史记录页面重新发送给定的IPN消息。" - https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNTesting/

所以我需要找到这个IPN历史,对吧?但是这些IPN日志记录的是什么?它们肯定包含使用模拟器生成的IPN吗?如果不是,重点是什么以及如何调试?我查看了实时商家帐户,沙箱商家帐户,沙箱付款人帐户。但是他们都说没有任何IPN被发送的历史。

只是一个侧面点:PayPal的沙箱是一场噩梦,因为如果您退出一个沙盒帐户,您会发现自己位于现场网站的登录页面上。同样,您无法使用沙盒商家帐户登录IPN模拟器,只能使用实时商家帐户登录,因此您必须以实时商家身份登录才能发送请求,退出,登录沙箱,检查IPN历史记录,找不到任何内容,登录退出,以实时登录并重复直到你疯了。然后为了进一步混淆事物,模拟器从地址buyer@paypalsandbox.com发送IPN,这样就可以提升您的心灵支付! IPN模拟器是否是沙箱的一部分?一旦您提交了一个模拟IPN,它就会将所有表单值重置为默认值,如果您确实需要输入有效沙箱付款人帐户的地址(文档不会说明您是否这样做,但我在这里的吸管)你还必须按要求多次复制和粘贴到盒子里。请拜托PayPal,以一种非同事的人可以理解的方式给你写文档。解释在测试IPN的每个阶段您需要处于什么样的环境。

我感到非常沮丧,因为这不是应该如何进行开发。我盲目地尝试基于预感的事情,非常不科学和非常低效。

有人可以澄清(或指向澄清的文档部分)确切地说如何调试INVALID响应吗?

2 个答案:

答案 0 :(得分:3)

行。经过一段时间后,我得出以下结论:

IPN模拟器 NOT 确实是沙箱的一部分。点击快速轻量级测试以检查PayPal服务器是否可以与您通话,这是有用的,但这是关于它的。它远非真正的支付过程模拟器!调试IPN验证过程的解决方案是从篮子提交阶段开始支付模拟过程,并将一些非常重要的值设置为沙箱环境。

1)首先,使用您的LIVE商业帐户用户名和密码登录https://developer.paypal.com/。点击Applications> Sandbox Accounts https://developer.paypal.com/webapps/developer/applications/accounts并创建2个沙盒帐户:

创建一个商家/商家沙盒帐户,这将是我们的假商店。例如 alansugar@yourdomain.example.com

然后,创建一个个人沙盒帐户,这将成为我们的假客户。例如 ladygaga@yourdomain.example.com

我们将使用这个假商店和这个假客户在沙盒中玩......

2)使用business字段中的商家/商业沙箱帐户地址和PayPal&设置服务器上的购物篮页面(提交到PayPal的购物篮) #39;在FORM元素的action属性中的沙箱域。像这样......

<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
    <input type="hidden" value="_xclick" name="cmd">
    <input type="hidden" value="alansugar@yourdomain.example.com" name="business">
    <input type="hidden" value="1" name="no_note">
    <input type="hidden" value="GBP" name="currency_code">
    <input type="hidden" value="GB" name="lc">
    <input type="hidden" value="PP-BuyNowBF" name="bn">
    <input type="hidden" value="bo14-9097200" name="invoice">
    <input type="hidden" value="monkey" name="custom">
    <input type="hidden" value="A nice pair of trousers" name="item_name">
    <input type="hidden" value="1" name="Some socks to match">
    <input type="hidden" value="25.0" name="amount">
    <input type="hidden" value="2" name="no_shipping">
    <input class="buyButton" type="image" border="0" alt="PayPal – The safer, easier way to pay online." name="submit" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif">
    <img width="1" border="0" height="1" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" alt="">
</form>

3)提交购物篮,当您看到PayPal付款页面(您的浏览器地址栏将访问www.sandbox.paypal.com域名)时,请使用您的虚假客户帐户付款。

4)使用您的LIVE帐户登录https://developer.paypal.com/。点击Applications&gt; Sandbox Accounts并点击Enter Sandbox site链接。现在,虽然您的浏览器仍然登录到您的主要真实帐户,但您可以使用沙箱帐户用户名和密码进行更深层次的登录(非常混乱)。当然只是为了让您感到困惑,右上方的UsernamePassword框会预先填入您的真实帐户的详细信息。擦除这些并使用沙盒商家/企业帐户的用户名和密码。现在点击History&gt; IPN History您可以看到发布到您服务器的请求。您应该能够使用此信息很好地进行调试。如果您的商家/商业沙盒帐户未启用IPN,它会向您提供进入设置页面并启用它的说明。去做。显然,在此之前的任何付款都不会触发IPN。

我希望这个描述有助于像我这样的人发现官方PayPal文档读起来就像一本书丢失了一半的书!

答案 1 :(得分:3)

要在PayPal沙箱中访问IPN通知历史记录,请使用您的测试商家帐户登录https://www.sandbox.paypal.com。 导航到“我的帐户/个人资料” 在“销售偏好设置”部分,它有一个链接“即时付款通知首选项” 在该页面上有一个指向“IPN历史记录页面”的链接。

我不确定他们最近是否已将此添加到沙盒中,但我同意这非常麻烦。