gpt4 book ai didi

php - paypal IPN发送两次不同的两次

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:44 26 4
gpt4 key购买 nike

我遇到了一些奇怪的事情,我希望有更多 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's
它们为什么不同?
为什么这些都没有记录在 Paypal 上? :(

最佳答案

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

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

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

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

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

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

请记住,当您以这种方式进行测试时,数据并非来自 PayPal,因此无法正确验证,但您可以按顺序安排一切,然后就可以开始了。

关于php - paypal IPN发送两次不同的两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24110898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com