PayPal Instant Payment Notification for WordPress

zipIf you want to receive notification for completed payments you need IPN or upgrade to the Pro version of the plugin. You will need a PayPal Business or Premier account.

To enable IPN in your PayPal account:

  1. Go to the plugin settings and select the IPN tab.
  2. Copy the Listener URL
  3. Log into your PayPal account
  4. Go to Profile > Profile and Settings > My Selling Preferences
  5. Look for an Instant Payment Notification option.
  6. Click on the update link (on the right).
  7. Click Choose IPN Settings
  8. Enter the Notification URL and make sure you have selected to receive IPN messages.
  9. Save the settings.

But IPN can be blocked or restricted by your server settings, theme or other plugins. The good news is you can simulate the notifications to check if all is working.

To carry out a simulation:

  1. Download, install and activate the plugin.
  2. Enable IPN on the IPN settings page.
  3. Enable the PayPal Sandbox on the plugin setup page
  4. Fill in and send your payment form (you do not need to make an actual payment)
  5. Go to the dashboard Payments History and copy the long number in the last column from the payment you have just made
  6. Go to the IPN simulation page: https://developer.paypal.com/developer/ipnSimulator
  7. Login and enter the IPN listener URL
  8. Select ‘Express Checkout’ from the drop down
  9. Scroll to the bottom of the page and enter the long number you copied at step 5 into the ‘Custom’ field
  10. Click ‘Send IPN’. Scroll up the page and you should see an ‘IPN Verified’ message.
  11. Go back to your Payments Report and refresh, you should now see the payment completed message

That’s all there is to is. If the simulation worked you will now be getting payment confirmations on the Payment history report.

  1. Chris said:

    Hi,

    I am struggling getting IPN to work under sandbox mode, firstly when I submit a payment, I get two lines in the payments panel, both with different ‘payment’ codes. If i try to use the IPN simulator with either of these codes, paypal reports “IPN was sent and the handshake was verified.” however neither update as complete.

    • Graham said:

      Chris,
      The Sandbox IPN isn’t very good. Sometimes I have to wait for hours for PayPal’s development servers to start working properly and report back completed payments. Which is why most of the time I just don’t bother. I make payments of $0.01 on a live form to test things and it works every time.

    • Chris said:

      Cool, As I said everything else looks ok (The handshake is successful etc) so im sure it will work ok. Unfortunately I dont have access to the PP account so have passed on instructions to set it up and will test as you did.

      Many thanks for a great plugin! 🙂

  2. TheDude said:

    The page for the IPN that I set up doesn’t respond to PayPal. In fact, it returns a 404 error, so the handshake is never sent. PayPal keeps sending a message with the following subject: “PayPal Instant Payment Notification Warning”. It then says “IPN requests… to the URL(s) are failing.” I tried to use the default listener URL as well, and it, too, did not work. However, using the sandbox accounts I set up in the developer profile DOES work, and so do live transactions.

    • Graham said:

      I’m a bit confused. You don’t need an IPN page all you need is the listener URL. This need to be a php function that processes the IPN information. Not even sure how you are seeing a 404 error as IPN all happens server site not client side. Can you send me a link to your listener URL?

    • TheDude said:

      Yes, well, I set up the listener URL according to the instructions, which is what I’m referring to by “page for the IPN”. https://owenssoftwater.com/pay-online/listener/

      Also used https://owenssoftwater.com/?qpp_ipn. Neither works.

    • Graham said:

      Have you enabled IPN and set up the listener URL in your paypal account? Have you enabled the autoresponder to send notifications after payment? If you have done both IPN should work and you will see the ‘Paid’ message in the payment report and get an email once payment is complete.

      Note, the listener URL isn’t a page you can visit, it’s something that only exists server side.

    • TheDude said:

      I can confirm that I have set everything up per your inquiry. In fact, the emails coming from PayPal itself is showing the listener URL. The emails simply say this:

      “Please check your server that handles PayPal Instant Payment Notification (IPN) messages. Messages sent to the following URL(s) are not being received: https://owenssoftwater.com/pay-online/listener

      As previously stated, everything IS showing up as paid. The problem is PayPal keeps sending these messages saying there is something wrong with the IPN. I assume it is because they send the info to the URL but, because the listener only listens and does not confirm receipt in any way (according to PayPal, at least), it assumes the system is not receiving the messages at all.

    • Graham said:

      https://owenssoftwater.com/pay-online/listener will never work. PayPal is looking for a function that allows it to process the IPN information. This function is called qpp_ipn. So change the listener URL in your PayPal account to https://owenssoftwater.com/?qpp_ipn and everything should work.

  3. matt said:

    Paypal says it only accepts https// and it won’t work with http:// How do I over come this?

    Thank you!

    • Graham said:

      Matt,
      Not quite sure where you are using the http://. Can you give me a bit more information

    • Matt said:

      The plugin offers the following for me to insert into paypal for the IPN responder. http://www.wna3.info/?qpp_ipn

      When I enter it into paypal as https:// same, Paypal says it sent it but the plugin never receives it. When I enter it in paypal just as Http: it times out.

    • Graham said:

      Matt,
      https will only work if your site is https. IPN only happens after payment and you won’t even know it’s happening (because it’s all server side not client side). You are timing out because the site is password protected. If PayPal can’t access the IPN function then it will fail.

  4. StefLBM said:

    Yes, I can do that, gimme a mail to create this please

  5. StefLBM said:

    Hello
    Thank you for your great job ! It’s what I need…
    So, the plugon seems to work great, but I got some issue with IPN :

    When I try your method, at step 4, i ahve no ‘long number in the last column’ : How can I see this number appear ?
    The IPN simulator at the Paypal developpers site telles me “ipn was not send and the handshake was not verified”
    is another plugin in conflict ? Had I to search a solution with my provider (O2Switch) or with Cloudflare ?

    Thank you

    • Graham said:

      Have you got sandbox enabled? Have you made a test payment? If you have done both click on the ‘Payments’ link in the dashboard to see the long number.

    • StefLBM said:

      With sandbox enabled, the page redirects me to Paypal sandbox. Then I pay , and … nothing
      So I switch to “live”, made a payment, I can see it in my paypal account, but nothing “verified” on the payments link in WP dashboard (The payment appears with the columns : “date, label, amount, mail”, that’s all

    • Graham said:

      Have you enabled IPN? Sorry if this is teaching you to suck eggs but this triggers the ‘Payment’ column on the payment report. The Sandbox option shows the long number in this column.

      PS: I’ve added a line to the instructions so it’s clear you need to enable IPN and the Sandbox

    • StefLBM said:

      Yes, IPN is activated both on sandbox and live
      URL de notification http://www.fishalaffiche.com/?qpp_ipn
      Envoi du message Activé

    • Graham said:

      In which case I don’t know what to suggest. I’ve just enabled IPN on the plugin IPN page and can see the ‘Payments’ column. Enabling sandbox means I now see the long number. Could you give me a temporary login to your site so I can see what’s happening?

    • StefLBM said:

      So…
      Uninstalling your plugin, then deactivate all other plugins, reinstall yours, and reactivate other plugins : works !
      Now, in Paypal IPN details, got a 403 error. I think this is not your plugin that fails, right ?

    • StefLBM said:

      Finally, thers’s a conflict with WP-Spamshield Which consider payapl as a SpamBot.
      I deactivate WP Spamshield, and enjoy.
      Thanks Graham for your great plugin, i will make a donation soon,
      S.

    • Graham said:

      Glad you got it all sorted. The whole IPN this is incredibly complicated, it took me ages to get it all to work properly.

What do you think?



Checkout the awesome new OnePage Theme. Designed for tablets and phones but perfect on a desktop

Checking...

Ouch! There was a server error.
Retry »

Sending message...

Ask a question

Spambot blocker question

7 - 6 =

Web Analytics Web Analytics