首页 文章

从用户到用户的自适应付款未收到PayPal IPN

提问于
浏览
0

我正在 Build 一个网站,用户可以购买其他用户发布的数字商品 . 我想使用PayPal自适应付款,以便将钱直接转给卖家(而不是我) .

我付款有效,但我没有收到IPN消息,除非我使用自己的PayPal帐户作为卖家(收件人) . 当任何其他PayPal帐户是接收者时,我的IPN URL根本没有被击中 .

您能否告诉我在这种情况下是否应该获得即时付款通知,为什么它可能无法正常工作,或者我可以在付款完成时找到其他任何方式?

Update

当我登录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 .

1 回答

  • 0

    我发现它肯定与在returnUrl和cancelUrl中使用"/../"有关 . 我通过从returnUrl和cancelUrl中删除_2600616来解决了这个问题 . 我不认为这些会有问题,因为"/../"用于PayPal's Adaptive Payments PHP NVP SDK中的样本 . 我认为它必须是Apache中的一些安全设置阻止POST与包含"/../"的主体,但我没有深入研究它 .

相关问题