为什么我从PayPal的IPN获得不同数据的2次点击?

时间:2013-09-18 20:37:06

标签: php paypal paypal-ipn

在我的网站上进行简单的网络交易后,我的IPN处理程序不仅接收到预期的“已完成”点击,而且还有2次点击。每个都有不同的数据。第一个看起来像这样:

stdClass Object
(
[transaction] => Array
    (
        [0] => stdClass Object
            (
                [invoiceId] => PVIFmMOZTm2xkjbs
                [id_for_sender_txn] => 3M760109N8943254L
                [receiver] => me@gmail.com
                [is_primary_receiver] => false
                [id] => 08B29244UF9480324
                [status] => Completed
                [paymentType] => GOODS
                [status_for_sender_txn] => Completed
                [pending_reason] => NONE
                [amount] => GBP 50.00
            )

    )

[payment_request_date] => Wed Sep 18 12:55:36 PDT 2013
[return_url] => http://mysite.com/checkout/paypal-overlay-state/complete
[fees_payer] => EACHRECEIVER
[ipn_notification_url] => http://mysite.com/ipn
[sender_email] => buyer@gmail.co.uk
[verify_sign] => AFcWxV21C7fd0v3bYYYRCpSSRl31ASUp2KT0F-R3d2QqGIzfWpkS.gWz
[test_ipn] => 1
[cancel_url] => http://mysite.com/checkout/paypal-overlay-state/cancel
[pay_key] => AP-4V279017Y7501703X
[action_type] => PAY
[memo] => SOMETHING
[transaction_type] => Adaptive Payment PAY
[tracking_id] => PVIFmMOZTm2xkjbs
[status] => COMPLETED
[log_default_shipping_address_in_transaction] => false
[charset] => windows-1252
[notify_version] => UNVERSIONED
[reverse_all_parallel_payments_on_error] => false
)

第二个看起来像这样:

stdClass Object
(
[mc_gross] => 50.00
[invoice] => PVIFmMOZTm2xkjbs
[protection_eligibility] => Ineligible
[payer_id] => NRQL7RKB54XWY
[tax] => 0.00
[payment_date] => 12:57:41 Sep 18, 2013 PDT
[payment_status] => Completed
[charset] => windows-1252
[first_name] => Ashley
[mc_fee] => 1.90
[notify_version] => 3.7
[custom] => 
[payer_status] => unverified
[business] => me@gmail.com
[quantity] => 0
[verify_sign] => AFcWxV21C7fd0v3bYYYRCpSSRl31AJGmBkDrCSx-mp-dKf5.Wc6co3ra
[payer_email] => payer@gmail.co.uk
[memo] => SOMETHING
[txn_id] => 08B29244UF9480324
[payment_type] => instant
[last_name] => Ward
[receiver_email] => me@gmail.com
[payment_fee] => 
[receiver_id] => XSSCKHZJZRBDQ
[txn_type] => web_accept
[item_name] => 
[mc_currency] => GBP
[item_number] => 
[residence_country] => GB
[test_ipn] => 1
[receipt_id] => 2722-5250-1650-6726
[transaction_subject] => 
[payment_gross] => 
[ipn_track_id] => a503d9ea64b1e
)

如何理解这些数据?为什么有2次点击?哪个是我需要注意的?

显示的数组是每个请求的PHP $ _POST数组的直接打印。您可以从时间戳中看到一个IPN在第二个之前稍微到达。

修改

我已经明白第一个阵列(第一个IPN命中)是您在使用自适应支付API时获得的额外收据。

对于大多数用例,我相信这可以忽略,因为第二个IPN命中包含了您需要的所有有用数据。

虽然有一点需要注意,第二个更有用的IPN阵列在第一个之后2分钟。第一次IPN点击在付款处理后立即到达,而第二次IPN点击在此之后2分钟才到达......不确定为什么会这样......

谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于你最初定义的打击我相信。或者你可能错误地定义了一个变量,这就是为什么你得到2次点击