I'm working on an IPN script to run a premium-content site. I'll be using PayPal subscriptions of various lengths for users to sign up for the site, and I'm trying to develop some way to handle user's profile data and "credit" using the IPN notifications.
I've already determined that I will initially create the user's account in my internal database when he first subscribes, using his PayPal email for his username and assigning credit to his account in that sense - I can use the payee email in future PayPal subscription IPN payment notifications to give credit to the correct account.
I have several issues I'm trying to face:
If the user pays with a credit card through Paypal instead of using an account, will their email address still be passed to my IPN?
This method relies pretty heavily on the user's email address to maintain their accounts. Is there any method to use something other then their PayPal email to keep recurring payments and my users in sync, without using Paypal's "managed user account" system? (I'd prefer to use my own internal user database).
If I pass a custom value with the initial subscription button, will that same value be passed to my ipn in a month (and every month) when the next month's recurring payment is sent?
We need to offer several different subscription plans = monthly, bi-yearly, etc. What method is best to use to have my IPN assign the correct amount of "credit" to the user's account (30 days, 180 days, etc) based on the recurring IPN I receive?
This is my first time developing anything beyond a simple IPN script, so if you have any suggestions to help make my subscription system more robust I'll be extremely grateful. Thanks in advance!