PayPal 的 IPN 不会因购物车上传而触发

PayPal's IPN does not fire for cart upload

以前,我们的购物车完全位于 PayPal 上,我们对每个 "Add to cart" 按钮使用 add 方法,每次购买后我们的 IPN 脚本都会正确触发。现在我们添加了另一个支付选项,所以我们在我们的网站上实现了购物车。这是将购物车内容传递给 PayPal 的表单:

<form action="https://www.paypal.com/cgi-bin/webscr" method="POST" id="pp_cart_form">
    <input type="hidden" name="business" value="email@domain.com" />
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="upload" value="1" />
    <input type="hidden" name="return" value="Return URL here - works fine" />
    <input type="hidden" name="no_shipping" value="1" />
    <input type="hidden" name="no_note" value="1" />
    <input type="hidden" name="rm" value="2" />
    <input type="hidden" name="custom" value="upload_cart" />
    <input type="hidden" name="invoice" value="Invoice ID" />
    <input type="hidden" name="notify_url" value="IPN URL - never gets fired" />
    <input type="hidden" name="item_name_1" value="&quot;Item 1&quot;" />
    <input type="hidden" name="item_number_1" value="443" />
    <input type="hidden" name="amount_1" value="1" />
    <input type="hidden" name="item_name_2" value="&quot;Item 1&quot;" />
    <input type="hidden" name="item_number_2" value="444" />
    <input type="hidden" name="amount_2" value="1" />
</form>

正在通过 Javascript 提交表单。

此更改后,IPN 处理程序在购买后永远不会被触发,我们必须手动添加订单。

可能是什么问题? notify_url 变量 100% 正确。

你做了什么来确认它没有被触发?您是否检查了 PayPal IPN 历史记录以查看结果?您检查过网络服务器日志了吗?

看看 how to test PayPal IPN 上的这篇文章。如果您按照这些步骤操作,它应该可以帮助您解决问题。