How to fix PayPal Instant Payment Notification (IPN) Warning [SOLVED]

Follow

Comments

9 comments

  • Avatar
    emily

    Hi Welt... Your solution of creating a blank CMS page... only gets rid of the warning from PayPal by giving a fake "ok" It doesn't solve the root issue. We need IPN to work fully. We had it working fine before we updated to Magento 2.2

    Please if anyone knows the real fix can you let me know at: emily@divegearexpress.com ? thanks! We are despite to get IPN working properly again.

    0
    Comment actions Permalink
  • Avatar
    Support

    If only using IPN with Magento, you should not experience any issues. Check if IPN was not disabled in your PayPal account, sometimes after a number of warnings it is automatically disabled. 

    The blank page is necessary when you are selling on multiple channels via PayPal. Whenever you are selling via a 3rd party channel, Magento vill be notified via IPN leading to warnings as the sale was not done via Magento store. For this reason PayPal dev team recommended us solution from the article.

    0
    Comment actions Permalink
  • Avatar
    Luke Holliday

    Hi Welt, I am operating two websites which point to one paypal... as you mentioned above. 

    I am trying to set up the IPN for the websites, but where you say to create a blank page, I am unsure as to which website this is to be created on. I have an ecommerce website www.908ltd.co.uk for engraving materials and an ecommerce website www.gardenlabelling.co.uk which is for garden labels. I dont want to put in a URL in the notification URL space in paypal settings only for a customer from one website to be sent back to a website they are not ordering from.. if that makes sense. 

    I just really want to know what the URL is that I need to put in there.

    Thanks in advance - email address = luke.holliday@908ltd.co.uk

    0
    Comment actions Permalink
  • Avatar
    Support

    Luke,

    You can create the page on any of your websites. 

     

    0
    Comment actions Permalink
  • Avatar
    Luke Holliday

    Hi, thank you for your reply.

    Sorry I do not understand what you mean. I am willing to create a page but is this page going to be viewable by my visitors?

     

    0
    Comment actions Permalink
  • Avatar
    David Brennan

    Hi there!

    Full Disclosure - I have worked for PayPal integrations and technical teams for nearly 10 years.

    Unless your Magento code is heavily modified, there is no requirement to specify an IPN URL on your PayPal account when using Magento. Because Magento pass this URL in their code (in the DoExpressCheckoutPayment API call) - which overrides all account settings.

    Adding this URL on your PayPal account is actually counterproductive as the default setting "Off" will actually be overridden by code (as many shopping carts do)

    It's not required and it will actually just cause problems.

    Your note "If only using IPN with Magento, you should not experience any issues" doesn't really cover all the events that could be sent to your Magento site.

    The Magento IPN listener code reacts with a HTTP 500 error if it receives an unexpected IPN message (based on 'txn_type' value)

    For example  - if you send money from your business account to another account (I saw an example of this today for a live merchant) then PayPal send an event with 'txn_type=send_money' to your "http://yourstore.com/paypal/ipn/" URL. Magento looks for an invoice number, doesn't find it, sends back HTTP 500 error. if you get enough of these errors PayPal will start emailing you "IPNs sent to the following URL(s) are failing: http://yourstore.com/paypal/ipn/"

    So in many (but obviously not all) cases the cause of this error is actually this article (surfaced on the front page of google when you search "PayPal Magento IPN"


    If merchants leave the PayPal account at its default settings (no IPN URL) then this will work well with a single store instance, multi-store instance, everything.

    It's only when code has been heavily modified that you might need to think about a strategy for sending all IPN events to Magento.

    Could you please review the detail of the article (I'd be happy to help you with that) as it's a bit misleading, although not fully incorrect it doesn't cover the default scenario 99% of merchants have so it may not be helpful there. This sort of advice has been generating support tickets at PayPal for some time now so I'd like to help you clarify certain details.

    0
    Comment actions Permalink
  • Avatar
    Danny

    I believe what's really happening here is people have multiple email addresses associated with their Paypal account. If you don't use your primary email address, the Magento extension sees a mismatch and returns a 500 error. You can find it in your exception.log:

    [2021-11-29 07:27:48] main.CRITICAL: The requested "primary@gmail.com" and the configured "secondary@gmail.com" merchant emails don't match. {"exception":"[object] (Exception(code: 0): The requested \"primary@gmail.com\" and the configured \"secondary@gmail.com\" merchant emails don't match. at magento/vendor/magento/module-paypal/Model/Ipn.php:123)"} []

    I wish I had realized this before setting my IPN as instructed here. 

    @David Brennan: How do we reset our IPN to nothing? It sounds like turning off IPN is the way to reset it to its default setting. But before I start making more changes, the way to undo this change is to select "Do not receive IPN messages (Disabled)"?

    0
    Comment actions Permalink
  • Avatar
    David Brennan

    Hi Danny - so sorry I missed your message.

    The primary and secondary email issue is something definitely related, but not necessarily the same problem  that everybody has when they get the email from PayPal with subject "Instant Payment Notification (IPN) Warning".

    The reason for this email is that PayPal have received something other than a HTTP 200/201 (Good) response from the IPN URL - and PayPal are notifying the customer to ensure they resolve this. for example in a bespoke (non-Magento) website this would be a good indicator that it's time to check the Apache/Nginx/whatever server logs (as well as Magento exception logs if debug logging is enabled) - the reason for the problem can be quite varied. but setting the IPN URL on the account can actually causes more problems than it fixes (for Magento merchants at least). We need a more holistic approach to troubleshooting on this.

    For this particular email from PayPal - I would look at why Magento is getting IPNs it doesn't expect (invoice number not there, txn_type unexpected etc.) but I'd also check the logs to see if there's some other reason why your system might be giving a 50x type error (or 4xx for that matter) - it could be overloaded at times for example, and give a 503 ? There are a lot of checks required to troubleshoot this fully.

    To answer your question about HOW to set your IPN to "nothing" - we would do this in the following way (if you already have IPN set to "on" with a specific URL):

    a. mouse over your name on the top right and click Account Settings


    b. click on Notifications and then Update beside Instant Payment Notifications
    c. Turn Off IPN (this is not the same as DISABLED)

    I would generally say though - just be very careful, plan this ahead of time, test in PayPal sandbox on a clone of your site before doing this on live, etc.

    "OFF" looks like this:

    but you want to fully avoid "DISABLED"
    and please note - that if PayPal receive enough failed responses from your server, the system will automatically set your IPN to DISABLED - so you may have to re-enable, and then set to OFF. The UI / messaging is not very clear here I'm afraid. But I hope this helps others having similar issues.

    1
    Comment actions Permalink
  • Avatar
    Kjell Morgenstern

    @David Brennan It is even worse for the German version of the Paypal site. Because both dialogs (off and disabled) have been translated to the same word, "deaktivieren".

    PS. I arrived here because IPN has stopped working in the sandbox without plausible cause. Somewhere between 14.July and 17.July 2022. The IPN History Page (of the sandbox user) only shows transactions from 14.July the latest, even though I initiated some payments to it after that date. So I believe the issue is somewhere on the paypal side. 

    PPS. About the original post: Configuring a blank page seems quite a weird fix. A bit like fixing an error by deleting the logfile that shows the error.

    1
    Comment actions Permalink

Please sign in to leave a comment.