0

我正在建立一个网站,用户可以在其中购买其他用户发布的待售数字商品。我想使用 PayPal 自适应付款,以便钱直接转到卖家(而不是我)。

我可以付款,但除非我使用自己的 PayPal 帐户作为卖家(收款人),否则我不会收到 IPN 消息。当任何其他 PayPal 帐户是接收者时,我的 IPN URL 根本不会被击中。

你能告诉我在这种情况下我是否应该期望获得即时付款通知,为什么它可能不起作用,或者我可以通过其他任何方式了解付款何时完成?

更新

当我登录到 PayPal 并查看 IPN 历史记录时,我可以看到它试图向我发送 IPN 以向其他接收者付款,但他们都得到了 HTTP 状态代码403。我还可以看到它何时尝试向我发送一个 IPN 以向我自己付款 - 这个获得了 HTTP 状态代码 200。

我不知道为什么它会得到 403 响应,因为我对该 URL 没有任何类型的访问控制。而且我不知道为什么当 IPN 用于向其他人付款时它只会得到 403。

当我查看我的网络服务器日志时,我看到 PayPal 试图访问我的 IPN 接收器,它主要得到404,除了支付给我自己的一种情况 - 这得到了 200。

173.0.82.126 - - [23/Jun/2012:15:25:00 +1000] "POST /ajax/paypal/AdaptivePayments/ipn.php HTTP/1.0" 404 - "-" "-"
173.0.82.126 - - [23/Jun/2012:15:24:59 +1000] "POST /ajax/paypal/AdaptivePayments/ipn.php HTTP/1.0" 200 - "-" "-"

我将检查我的 Apache Web 服务器中是否有某些内容可能会根据 POST 的正文拒绝发送到 IPN 接收器的 POST。

4

1 回答 1

0

我发现它肯定与 returnUrl 和 cancelUrl 中有“/../”有关。我通过从 returnUrl 和 cancelUrl 中删除“/../”解决了这个问题。我不认为这些会成为问题,因为“/../”在PayPal 的 Adaptive Payments PHP NVP SDK的示例中使用。我认为它一定是 Apache 中的一些安全设置阻止了包含“/../”的正文的 POST,但我还没有深入研究它。

于 2012-06-24T00:15:40.210 回答