【问题标题】:paypal IPN sends two different twicepaypal IPN 发送两个不同的两次
【发布时间】:2014-06-08 21:14:22
【问题描述】:

我遇到了一些奇怪的事情,希望有更多使用 Paypal 经验的人能解释一下,特别是 IPN 功能。

我的 IPN 听众似乎收到了两种截然不同的点击。第一个总是失败,第二个通过。

现在我知道 Paypal 倾向于发送重复邮件,但我注意到收到了两个非常不同的 $_POST 数组。

回复如下:

    [2014-06-08 23:51:19] 
    RAW POST DATA : Array
    (
            [transaction] => Array
            (
                    [0] => ILS 20.00
            )

            [payment_request_date] => Sun Jun 08 13:52:12 PDT 2014
            [return_url] => MY_URL
            [fees_payer] => EACHRECEIVER
            [ipn_notification_url] => MY_URL
            [sender_email] => patrick.testbuyer@gmail.com //fake email
            [verify_sign] => ANp5TpLat3.2ylx.cECtVZ..5HejAsVcs05tdVC7RldmeYNJ91SKaqFJ
            [test_ipn] => 1
            [cancel_url] => MY_URL
            [pay_key] => AP-04B74091M7083584A
            [action_type] => PAY
            [transaction_type] => Adaptive Payment PAY
            [tracking_id] => 13 // This is a number I passed, But it doesn't exist in the 2nd POST
            [status] => COMPLETED
            [log_default_shipping_address_in_transaction] => false
            [charset] => windows-1252
            [notify_version] => UNVERSIONED
            [reverse_all_parallel_payments_on_error] => false
    )

    [2014-06-08 23:51:19]
    RAW POST DATA :  Array
    (
            [transaction_subject] =>
            [payment_date] => 13:52:28 Jun 08, 2014 PDT
            [txn_type] => web_accept
            [last_name] => test
            [residence_country] => US
            [item_name] =>
            ....

            (this continues for quite a bit more)

            ....
            [payment_fee] =>
            [mc_fee] => 1.78
            [mc_gross] => 20.00
            [custom] =>
            [charset] => windows-1252
            [notify_version] => 3.8
            [ipn_track_id] => f93ce8bdd4382
    )

我的问题
第一个带有多汁tracking_id 的IPN 失败,第二个IPN 被验证,但是一旦IPN 被验证,我就无法再访问tracking_id

我的问题 为什么paypal会发送两个不同的IPN
为什么它们不同?
为什么这些都没有记录在 Paypal 上? :(

【问题讨论】:

    标签: php paypal paypal-ipn


    【解决方案1】:

    您正在使用自适应支付,因此您需要确保始终记住有 3 方在发挥作用:应用程序本身、发送方和接收方。

    很多时候,您的应用程序也可能充当发送者或接收者,但在其他情况下,它可能是完全独立的 3 方。

    IPN 系统设置为向应用程序发送一个 IPN,这是您在此处显示的第一个 IPN,然后收款人帐户将获得一个 IPN 以及他们刚刚收到的付款,这是您的第二个 IPN '得到。您可以根据您在其中获得的 transaction_type / txn_type 值相应地处理这些。

    这样,当您构建代表第 3 方用户运行的应用时,您可以在应用级别跟踪事物,而接收方仍然可以获得自己的 IPN 来跟踪和处理自己的交易。你扮演两者,所以你得到两者。

    如果其中一个失败,那么您的脚本中肯定存在导致该特定类型失败的问题。您可以检查您的 Web 服务器日志以查看实际错误是什么,然后解决它。

    我喜欢做的另一件事是在我自己的模拟器中使用基本的 HTML 表单复制 IPN,并将操作设置为我的 IPN URL。使用您从失败的真实 PayPal IPN 获得的相同名称/值设置隐藏字段,然后将其加载到浏览器中并提交,以便您可以在屏幕上看到结果。这在调试中很有用。

    请记住,当您以这种方式进行测试时,数据并非来自 PayPal,因此无法正确验证,但您可以将所有内容整理好,然后就可以开始了。

    【讨论】:

    • 谢谢安德鲁!只是我还是第一个 IPN,发送到应用程序并没有真正用于任何有用的事情。我什至不需要第一个 IPN,因为我在 2 日完成了所有验证。这也是第一个失败的原因,我用来验证的所有字段都不存在于第一个 IPN 中,所以它没有通过我的筛选。有没有办法为 IPN 侦听器设置两个不同的 URL?一个用于应用程序,一个用于接收器?
    • 如果您构建了一个应用程序供其他人通过它发送和接收资金,那么您可能希望应用程序特定的 IPN 跟踪您的应用程序的使用情况,例如,即使您与实际无关交易。对于您的场景,听起来您必须在支付请求中设置 NotificationURL 参数..??您是否尝试过将其删除?
    • 我才意识到我正在设置它!非常感谢
    猜你喜欢
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2016-06-10
    • 2011-12-11
    • 2016-05-27
    • 2018-06-11
    • 2015-09-27
    • 2012-05-19
    相关资源
    最近更新 更多