IPNs getting sent a URL that is no longer available - paypal

I run a subscription based website, which was going great until the developer of the subscription component I used ceased development.
Due to my lack of knowledge of programing a solution to set up something to catch the exisiting IPNs and convert them into something my new subscription component could manage, I simply manually added new subscriptions into the new subscription component, and kept a manual log of when subscriptions had been cancelled from Paypal's end, then altered the entries accordingly.
This was fine as the defunt subscription component still recieved the IPNs and sent back the correct notification to Paypal, and I kept an eye on things.
Now we have upgraded our security and moved to a new server, and the old subscription component has been marked as being vunerable, so moving it over also to keep this system I have going is no longer viable, and I am getting warnings from Paypal about IPNs not being recieved properly.
What should I do about this?
I can't turn of IPNs because my new subscription component uses them (perfectly).
Is this something a developer could look at and fix for me? I simply want the subscription IPNs from the old system to be recieved somehow (I am totally happy keeping things running manually on my side for older subscriptions).
Is there a way to turn off IPN notifications for just the subscriptions that are trying to send to a paricular URL?
Is there an easier sollution?
Any help would be muchly appreciated, I am worried that my IPNs will get turned off all together which would end up being a lot more work for me!
Kind Thanks,
Thomas

You cannot modify the IPN notification URL that are sent to your old subscriptions.
If you want to stop receiving notifications on your old subscriptions you need to cancel the old subscriptions and create a new/similar one.

Related

SwiftUI Auto-Renewable Subscription flow

I have implemented In-App Purchase Auto-Renewable Subscription into my app but I'm not sure if I have done it correctly as the app constantly asks for iTunes login.
In the user case: I am subscribed to monthly payments and my first month is over and expect it to auto-renew.
The flow I have at the moment is as follows...
(in App Delegate) Check receipt is valid
(if receipt IS valid) check all receipts for latest expiration date
(if expired - which seems to be the case after the first month is over) call SKReceiptRefreshRequest to get latest receipts. I have put a count check on this otherwise it gets stuck in a never ending loop.
Do final check to see if latest receipt is in-fact expired.
Is this the correct way to go about this? If not could you shine some light on this?
It all seems to be working fine apart from the annoyance of iTunes login. Which I guess would only be once a month outside of the Sandbox environment which isn't too bad but just want to be sure I'm doing this correctly.
Thanks
Don't call SKReceiptRefreshRequest. This request is usually only for the "restore purchases" mechanism. This is why you're getting the sign in dialogue. StoreKit will return to you as long as you an observer to the payment queue: https://developer.apple.com/documentation/storekit/skpaymentqueue/1506042-add so you should add yourself to the payment queue on app launch. Then keep that object aline to listen for changes for the entire app lifecycle. You will receive the renewals in the updatedTransactions callback https://developer.apple.com/documentation/storekit/skpaymenttransactionobserver/1506107-paymentqueue
Secondly, you should be doing receipt validation on your own server and not on the client as it will be susceptible to a MITM attack. You can also easily control the logic there and receive Server to server notifications which is best for managing subscriptions.

Can you generate new PayPal IPNs for past (IPN-less) transactions?

So I'm working with a system that uses the legacy NVP/IPN thing from PayPal. The IPN listener URL wasn't set up properly and so they ran a couple weeks worth of transactions with no IPN data coming back. I've set it up properly now, but I'm wondering if there is a way to regenerate that last couple weeks that never had any. Whenever I go to the IPN history page, I just get a this feature is not available message. I know it's now working because I can see three transactions in our database (that come through the IPN listener)
On another note, if I go to the download history page and try to click download, the page refreshes but nothing happens. I don't get a report or anything, any idea why?
It sounds as though you're looking for the IPN history page, where you can resend IPNs: https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history
Late edit: changed title to better reflect the true question (it's not about regenerating IPNs). And the answer is it's not possible. Instead, for past IPN-less activity one must manually import a CSV obtained from www.paypal.com account home -> Reports -> Activity Download
This is the URL: https://business.paypal.com/merchantdata/reportHome
If once in the Activity Download, "Create Report" does not work properly (e.g. "nothing happens"), contact PayPal's support for assistance as that is not normal.

Resend Opt-in email to unsubscribed member using MailChimp API V3.0

I have a situation where I would like to programmatically (re)send a confirmation (opt-in link) email to a member who has unsubscribed.
I know I cannot directly re-subscribe them, but I was hoping there would be a means of at least sending a confirmation email.
Is it possible to trigger the confirmation email for an unsubscribed member in vs 3.0 of the API?
I know I can resend it from the Web UI but I'd really like to accomplish it via an API request when a user who has previously unsubscribed performs some action on the website indicating they'd like to be added again.
Deleting and Adding the member is a last resort, but I would prefer to keep the original account (and its data) in place.
Re-sending an opt-in email for someone who is still in a pending state isn't supported AFAIK, but once the user is unsubscribed, I think if you set them back to pending it will resend the email.
Alternately, I've not found deleting and resubscribing to cause much data loss (if any) so you might try that out too, if the above doesn't work.

Paypal IPN message queued

using IPN Simulator, my listener (in sandbox) is working fine.
then I submit the order by the html form.
I noticed that all the IPN messages were "queued" (from the IPN history)
what make this happen? And How can I solve this?
I read some old threads that same case was caused by Paypal Server. Can anyone help to advise on this? Thanks!
This shouldn't happen often, but it could be that the IPN server is simply backed up so the IPNs are waiting in the queue and will be sent as soon as the servers catch up.
Another thing that could cause it, though, is if you have lots of failures happening with your IPN script. In such cases PayPal may place you on a slower queue because they don't want to waste server resources if you're failing a lot. You should get notifications about that if this sort of thing is happening, though, and eventually they would just turn IPN off altogether until you get it fixed and re-enable it.

PayPal payment to issue activation code

I have just created my first PayPal button and it is working correctly within sand box. I would like to know the best way (if possible) to issue a unique activation code on my return url ensuring that the user has definitely paid before they receive the code. I could manually email the code but wondered if the was any way of automating this using some sort of return value? Possibly returning to an aspx page which then reads from my database to get the next activation key and displays it?
Thanks
Garry
As you already know that PayPal doesn't provide such facility for delivering activation instantly but it does offer the Instant Payment Notification API (PayPal IPN) which can be used to build such a platform.
Here is a great article for that purpose only. https://www.codeproject.com/Articles/383207/Selling-software-using-PayPal-IPN-as-an-eCommerceenter link description here
The best way to handle that would be to use Instant Payment Notification (IPN).
Any time a transaction happens on your site (whether it's a payment, refund, cleared pending payment, dispute, etc.) the PayPal server will POST details about that transaction to a script you have sitting on your server.
This script can receive the data and process it accordingly allowing you to automate things like updating a database, generating email notifications, hitting 3rd party web services, delivering e-goods, etc.
If you want the activation code to be visible on the return URL you can look at Payment Data Transfer (PDT), which is just like IPN except that it's made for use with the return URL. It is not recommended to use this, though, for post-transaction processing because there is no guarantee the user will make it back to the return URL, for one, and also it wouldn't handle things like e-checks correctly.