Previously, we had our cart located entirely on PayPal, we used add
method for each "Add to cart" button and our IPN script was fired correctly after each purchase. Now we've added another payment option, so we've implemented a shopping cart on our website. And here's the form for passing the cart content to PayPal:
<form action="https://www.paypal.com/cgi-bin/webscr" method="POST" id="pp_cart_form">
<input type="hidden" name="business" value="[email protected]" />
<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=""Item 1"" />
<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=""Item 1"" />
<input type="hidden" name="item_number_2" value="444" />
<input type="hidden" name="amount_2" value="1" />
</form>
The form is being submitted via Javascript.
After this change IPN handler never gets fired after the purchase, and we have to add the order manually.
What can be the problem? The notify_url
variable is 100% correct.
What have you done to confirm it doesn't get triggered? Did you check the PayPal IPN History to see the results there? Have you checked your web server logs?
Take a look at this article on how to test PayPal IPN. It should help you resolve the issue if you follow those steps.