I’m trying to setup a registration form for some workshops that last a week. Basically, they can sign up for the workshops individually or the whole week. Depending on what they select, the price will change. I get how to send this information to paypal, however I also want to submit information to my own DB. How would I submit to paypal and file the info into my DB at the same time?
I also want to have a variable that is returned that verifies they have paid so I can mark it in my DB.
Would I just have another page that would put all this info into the DB (once submitted) then also put the info into hidden form fields and then automatically submit to paypal?
Thanks in advance! 🙂
“When payment is successful your user is returned to your self which is when you can record the payment in the db.”
That’s exactly what you shouldn’t be doing.
Depending on a buyer to return to your website in order to update an order status is the worst thing you can do.
PayPal IPN was designed with especially this use case in mind.
Simply add in
This will ensure PayPal will POST to you whenever the payment has completed. Even if your buyer has already closed his/her browser.
You can use the ‘custom’ fields to link an IPN POST to a transaction made on your site. For example:
will ensure you get an IPN POST with $_POST[‘custom’] of ‘1122334455’. From there, it’s simply a matter of making a db call to update the order status to ‘paid’, or whatever you use to mark it as payment received.
Oh, and don’t forget to post the data back to https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate to validate the IPN POST. More info is available at https://www.paypal.com/ipn/