Ive been using express checkout API to convert people’s accounts on my site to premium accounts after paying. The only problem with it is that it doesn’t send the user back to the site until they click the button to return, and it updates their permission when that happens. About 40% of the users don’t seem to do that…. so their accounts never get credited after payment.
Although paypal does an instant post-back upon the successful payment, I was never able to make it actually update the user’s account right away, since I cant get it to send back some sort of informational that would identify the user that just completed the payment. I could only do that when you are sent back to the site, which sends the transaction ID, that I logged with a post-back. It searches for it, and grants permission if it was found int he DB.
Is there a way to submit some sort of a variable to paypal, that it will then post back to me? Something like &user_id=123, which would make it very handly to update the user’s permission.
Yes, if you send
item_number, the IPN notification will include that when it posts back to you. I record a unique ID in the database when the user starts the payment process, and include that when sending them to PayPal. When the IPN comes in, that unique ID matches up with the record in the database, giving me all the info I need.Edit Re your comment:
I expect there’s a code example somewhere on the site linked above, but basically in my case I’m using a form that I POST to https://www.paypal.com/cgi-bin/webscr. Within that form are various hidden fields documented in the IPN stuff (
cmdfor what command to perform,businessto specify your business ID,item_namefor a nice description in the PayPal UI,item_numberfor the item number I mentioned above, etc., etc.). When IPN posts back to your IPN address, it includes various fields (such aspayment_status— kind of important! &mdash and theitem_numberyou fed in when posting to them).