I've recently started implementing Paymill's online payment processing service for scribblar with the help of Richard Herbert's excellent cfPaymill wrapper for Paymill's API. The main reason for this is the fact that I am totally and utterly fed up with PayPal and their 'customer service'.
To be honest I do not know how much I've paid PayPal for their services over the years (I suspect it amounts to several thousand dollars) and I would have happily carried on if I felt like a valued customer there and the company would take my customers' user experience seriously. It would also help if they were a generally pleasant company, but after more and more horror stories I am packing my bags.
The last straw for switching slowly but surely to a 'normal' payment provider such as Paymill was the terrible look and feel of PayPal's subscription sign-up pages (scribblar almost exclusively sells subscription payments to what is effectively a SaaS app). They look like this. When I raised this with PayPal they told me "I would not expect any customers to be put off by this checkout, we have no plans to update it any time soon."
They then proceeded to tell me that I could pay them even more money and use their Website Payments Pro product. Well, let me think abo... NO!
My first experience with Paymill (which is basically a German Stripe clone) was much better. It's possible to pick up the phone and talk to a human being and get questions about API details, webhook implementation and general setup answered quickly. Good luck trying to find information about anything at all on the PayPal site, let alone speak to a human being... But enough of that.
I just wanted to briefly mention the results of a call(phone that is, not API...) I had today with Paymill as I needed to figure out what the process would be when it comes to cancelling subscriptions. Basically I don't care WHEN a customer cancels their subscription, but I care when the paid subscription period ends so that I can downgrade their account.
I was told to set the cancel_at_period_end parameter to true when creating the subscription object. Once the subscription period ends we should get a webhook notification subscription.deleted which passes a subscription object - at that point I can downgrade the user.
This wasn't immediately clear from the Paymill API docs so maybe this helps someone - note that I've not yet verified it in practice yet.
I'm hoping to get the new and much simpler Paymill payment form set up next week.