My business provides a service and in return clients pay a monthly subscription.
However on a monthly basis a certain pertcent of my clients subscription fails.
Paypal Subscription is setup to retry after 5 days, however this means clients can access the service for free for 5 days.
As my client base and payment issues grow I need to find a way to solve this.
For example if a payment fails (i know as its logged in my db), I want to redirect the client to a payment screen (once logged in), forcing them to make payment.
However im not sure if paypal supports this as I can't see anything in the ipn docs about "take payment now" for a subscription.
Anyone else have this issue? and a solution?
Related
After a couple of hours, I managed to figure out how normal single payments flow works on Paypal. However, I am struggling to wrap my head around billing plans.
I know how to instantiate a billing plan/agreement. What I cannot understand however is how will I know if the user stopped paying and how to renew the user's subscription? What kind of signalling should I expect?
Will paypal notify me after every payment?
Will paypal notify me if a user cancelled the billing plan/agreement?
Should I have like a cron-job that checks whether users witha subscription plan need to renew.
It's really confusing and I can't find any part of the documentations touching on this issue.
I have a SAAS web application that works through a subscription fee. If the subscription is valid everything works fine, otherwise the app goes in read-only mode until the customer renew the subscription. I've developed the payment flow with the PayPal API.
The problem is that PayPal Documentation says this:
"Although PayPal usually processes IPN messages immediately, IPN is not synchronized with actions on your website. Internet connectivity is not always 100% reliable and IPN messages can be lost or delayed. The IPN service automatically resends messages until the listener acknowledges them. The service resends messages for up to 4 days.
Because IPN is not a real-time service, your checkout flow should not wait for the IPN message before it is allowed to complete. If the checkout flow is dependent on receiving an IPN message, processing can be delayed by system load or other reasons. You should configure your checkout flow to handle a possible delay."
Unfortunately this is exactly my case: when customers renew the subscription I need to immediately activate the app so I placed all the logic right in the "notify callback" where I have to create the order, send a confirmation email, update some session variables... but I if there's a delay from PayPal IPN this is a problem!
In these days I did some test in Sandbox mode and in several cases I got an answer from IPN even 4 hours after the successful payment! This is unacceptable for my app!
Finally the question: what's the best solution for my case? It makes sense to move the application activation from "notify callback" to "success callback"? There may be problems?
Thanks
Don't use IPN for this; it's a poor fit & not designed to be inserted into synchronous user experience flows. It works fine as a way to initiate offline fulfillment, but can delay your customers if they are actively waiting for access.
You don't specify which PayPal product you are using, but each product should provide a way to immediately give you feedback that the payment has been completed. For example with Express Checkout or any API-based payment you can take action (activate/re-activate a subscription) when you receive the successful API response (the DoEC API in the case of Express Checkout).
With web-only/non-API products you can take action when the customer redirects to your return_url, using PDT to securely get information about the transaction if you need that (it can include an IPN-style key that you post back to PayPal to verify, exactly as you do with an IPN).
If you are concerned about the edge cases of someone closing their browser before it can redirect to you, or some other sort of dropped connection or programming error, you can also check & activate/fulfill upon receipt of an IPN to catch any fallout. So all customers that complete a normal payment flow are activated immediately; if they do something wonky (or your code breaks, or whatever) then the activation still happens, albeit potentially delayed by a few seconds or minutes.
I am able to subscribe for free trial period in paypal but unable to get any response from paypal in terms of return parameter so that I can update the same in my database. Can anyone please help me out in this matter.
I would recommend using Instant Payment Notification (IPN) to handle any database updates, email notifications, or anything else you might want to automate based on transactions with your PayPal account.
IPN will handle payments, subscription profiles created, profiles canceled, profiles expired, refunds, disputes, etc, so you can automate all sorts of things based on different types of transactions.
I am using paypal to handle subscriptions to my website and am concerned because PayPal emails users each month when their payment is sent. I realize this is very transparent but I see it as detrimental to my business. Other subscription services I purchase don't send me an email each month reminding me that I am paying them and how to cancel. I'm not trying to hide the fact that I am charging my users but I also don't want paypal activelty reminding them that they are paying money and giving them a link to cancel their accounts.
Does anyone know how to stop automatic emails from being sent from the merchant end or can it only be done by each individual user?
If it can't be done does anyone know of other services I can use to run my subscription billing that give me that control? Thank you!
I currently manage 3,000+ subscriptions via PayPal and have used PayPal for subscriptions for three years. You are correct, this is for transparency. I've never seen the option to disable this, and I doubt PayPal would ever offer it. You'll learn that PayPal is much more interested in catering to buyers than sellers. They keep the buyer happy to the detriment of the seller. For example, PayPal recently reversed 7 months of subscription payments because the buyer called into PayPal and claimed it was unauthorized. We keep plenty of records to prove this isn't true, but PayPal consistently rules in the buyer's favor regardless (we have, yet, in three years to "win" a claim against us). There is very little protection for sellers of digital goods.
Depending on how you decide to run your business, the payment reminders can be used to your advantage. I often receive emails from buyers who claim that they've canceled, yet, we've charged them again, or, they claim they've been charged for months and didn't know it. Thanks to the emails from PayPal, I know, without a doubt, that they were notified each time they were charged, and that if they had actually cancelled, they wouldn't have been charged.
There are many other payment processing services like PayPal that are more "hands-off", but their rates are equal or greater. The only one I've found that's comparable is Payza. Again, there are others, but you have to weigh the benefit of full control (including being the help desk for payment issues), and higher rate, versus PayPal's practices.
we have a paypal payment system integrated into our website so people can register and choose a subscription. The subscription part works fine as the payment goes through and the IPN hits our website and updates our systems. Now we want users to be able to cancel their subscription from within our website so we have a custom cancellation button which when clients click, should send a request to paypal and cancel their subscription. We managed to get this going on sandbox test system however since we have brought the system into live testing we can not get the cancellation feature to work. So currently when the user clicks on cancel button, i think paypal is not being notified and hence no IPN received from PayPal.
Do you know what all info we need in order to cancel the subscription from our website. I know there is a way where users can log into paypal and cancel their subscription or we can log into our paypal and cancel their subscription but we want it to work from our website.
Please help!
Thanks.
When you say you have it working on the sandbox but not live, what exactly is going wrong when you try it live?
I'm actually a little confused by that, because my initial answer was going to be that you can't kill subscriptions via the API unless you're using Recurring Payments. Standard subscriptions aren't accessible via the API.
If you're saying you're doing that in the sandbox, though, then there must be something I'm unaware of..??
On that note, I know the PayPal system pretty well, so I'm thinking maybe you did Recurring Payments on the sandbox, but live you're using Standard Subscriptions..?? If that's accurate then you'll need to move to recurring payments instead of standard subscriptions on the live site.