I am using paypal payment gateway with my website for payment.
Here I want a feature like where I could send list of product id those I want to purchase. And after successful payment I want to these all id so that I could update my datasbe. I can not use IPN, because its already used for other site.
Below is my html form for paypal..
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="praveend06-facilitator@gmail.com">
<input type="hidden" name="item_name" value="PAYMENT REASON">
<input type="hidden" name="amount" value="10">
<input type="hidden" name="quantity" value="1">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="lc" value="MX">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="hidden" name="notify_url" value="http://localhost/paypal/notify.php">
<input type="hidden" name="return" value="http://localhost/paypal/success.php">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="cbt" value="Return to The Store">
<input type="hidden" name="cancel_return" value="http://localhost/paypal/fail.php">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but6.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
I wrote below code in success.php but its returning blank array. Even i didn't get transaction id.
Please help me to achieve this. Thank you
There is only one parameter that you can use for custom data with Website Payments Standard and that's "custom".
Simply pass in you custom data in
<input type="hidden" name="custom" value="your custom data here">
In the custom data, first add the product IDs as a comma separated string and then you will get that back on successful payment.
You can retrieve the value for 'custom' by polling through PayPal PDT (https://www.paypal.com/pdt/) or getting the data POST'ed to you by PayPal, using PayPal IPN (https://www.paypal.com/ipn/).
But you already mentioned that you cannot use IPN. So go for PDT instead.
PDT is NOT the recommended way to update your database. Even with Auto-Return enabled there is no guarantee the user would make it back to your site. In these cases the return page would never be reached and that code would never run, leaving your database without the updates it needs.
You CAN use IPN with multiple PayPal accounts. You just need to use the notify_url parameter to specify the unique URL you want to use for IPN on that particular checkout.
On that note I see you're already including the notify_url parameter in your code here, but you're using localhost for it. That won't work because it will be PayPal's server sending data to that URL. As such, "localhost" is their own server at that point.
What you need to do for testing purposes is use your public IP address or setup a domain to resolve to your IP address so you can use that as your IPN URL instead of localhost.
So then, again, you can use as many different IPN URL's with a single account as you need to. Just set notify_url to whichever one you need to use based on the checkout that you're setting up.