I've had to refuse money from people, because my system simply isn't up to the task yet.
It's kind of amazing how many small details there are even in a simple subscription site. First of all, you naturally need a way to accept a subscription payment. The easy way to start is to slap a PayPal payments button on your site.
Then after you have a few subscribers this way and are ready to graduate to the next step, you find that it is impossible. PayPal subscriptions created through the payment buttons are not compatible with the more advanced API they have. In other words, you cannot manipulate subscriptions through the API which you originally created through the easy buttons.
To avoid creating two different classes of subscriptions, one manipulatable through the API and others not, you keep the simple buttons and just try to get by with those. They are not quite as flexible, you have less control over the checkout steps and cannot easily ask things about the subscriptions later.
One thing you can do is query PayPal about the individual payments that are coming to your PayPal account. You can ask things like "list all the payments I received today" and "show me details about this payment". But you cannot ask things like "when is the next payment coming for this subscription".
But you can survive, as almost all of the same information can be reasoned from the individual transactions. There are some services that promise to make the task of running a subscription site easier, services like Recurly and Chargify. Not being a US citizen and using the simple buttons, those don't work for me however.
So now I'm stuck writing code to deal with the buttons created through payments standard. Here are some things that I need to do:
- Continuously poll PayPal so that I have a fast local copy of all transactions
- Additionally poll each transaction, because the default list doesn't contain information such as the buyer's paypal email address
- Also react to PayPal Instant Payment Notifications, because otherwise would not update fast enough and customers would have to wait around.
- Notice if payments stopped coming, so that product doesn't get sent to people who no longer pay. In some cases this is unknowable (product shipping out today, payment due tomorrow, cannot know if payment will actually come, but send anyway).
- Track which shipping address is related to which subscription. This means need user accounts -> account creation page, password reminder emails
- etc etc etc
Is there no service which would make life easier for us poor folks stuck using PayPal payments standard?