February 20, 2010 at 4:42 am #830
If you are trying to troubleshoot a problem by running the plugin with the debug enabled option but not getting any output in the debug log file (ipn_handle_debug.log) then follow the steps outlined in this post.
Sometimes users change various settings values in the plugin and in their PayPal merchant account and then they forget about it. Sometimes the issue can arise from an improperly configured server. Going through this checklist will help you identify the source of the issue so you can take action to fix it.
Not sure what “Enable Debug” mean? Read this post first that explains what enable debug option does:
Debug File Empty Troubleshooting Checklist
Step 1: First, check to make sure that you have turned debug on from the settings menu of the WP eStore plugin. If the “Enable Debug” checkbox is not checked then the plugin won’t write to the log file. If step 1 is not the issue then move to step 2.
Step 2: Check that the “Use Automatic Post Payment Processing” checkbox is checked in the settings menu of the eStore plugin. If this option is not checked then the plugin won’t tell PayPal to send the IPN and no post payment processing will happen, hence no debug output. If this is not the issue then continue to step 3.
Step 3: Make sure you don’t have any “Maintenance Mode” or “Coming Soon” type plugin active. These type of plugins will block the payment notifications sent by PayPal so the plugin will never receive any notification after a payment and nothing will happen.
Step 4: Now lets check to make sure that the plugin is not facing any permission issue when trying to write to this file.
Access the “paypal.php” file that is stored in this plugin’s directory (wp-cart-for-digital-product) directly from a browser. The URL should be something similar to the following:
change “yoursite.com” to the domain name of your site. When you enter that URL in the browsers address bar you should see the following line:
`Debug is enabled. Check the ipn_handle_debug.log file for debug output.`
Accessing the “paypal.php” file directly will trigger the plugin to write something in the debug file so lets check the “ipn_handle_debug.log” file again. If the file is still blank then it would mean that the debug log file “ipn_handle_debug.log” doesn’t have write permission. Give it write permission.
On the other hand if you see some content in the debug log file then we do not have any file permission issue… move to step 5.
Step 5: Now the options get narrowed down to…
a) something is blocking the PayPal IPN.
b) Your paypal profile is not set correctly to send the IPN.
If you have a paypal sandbox account then we can rule out option a) by doing another simple test.
Log into your paypal sandbox account and go to the IPN simulator test tools page at the following URL:
Enter the URL from step 3 (URL of the paypal.php file) in the “IPN handler URL” field and select “Web Accept” from the transaction type drop down menu. Now hit send IPN button and see if you get any failure. If you receive an error message saying the “IPN sending failed” then that means that something on your server is blocking paypal’s IPN (maybe your servers firewall or a plugin is blocking it). Deactivate any firewall or security plugin from your WP install then test it again. If PayPal still fails to send IPN to your server then that means you have an improperly configured server (low end GoDaddy hosting has a reputation of doing this). You will need to contact your hosting provider and request them to fix it. Simply tell them that the server is rejecting PayPal IPN and they should know what to do (if they are a good hosting provider).
If the IPN was sent successfully then check the debug log file explained in step 3 and make sure that there is a new entry in the file for the IPN that was just sent to the plugin.
Step 6: At this point there is only one possible cause left. You may have specified to not receive IPN in your PayPal profile. Please check the “Instant Payment Notification Preferences” settings in your PayPal profile to make sure you have IPN enabled in your account.
See the following post to make sure your PayPal profile settings are correct too:
Here are some posts where the user figured out the setup mistake by going through the above checklist. If you are reading this post then the following posts should also be very helpful for you:March 27, 2010 at 5:01 pm #18234
I followed this very helpful guide and found that my debug file was not writable. I gave it 666 permissions and then got this message in my debug file:
[03/27/2010 9:48 AM] – SUCCESS :Paypal Class Initiated by 188.8.131.52
[03/27/2010 9:48 AM] – SUCCESS :Post string :
[03/27/2010 9:48 AM] – SUCCESS :Connection to http://www.paypal.com successfuly completed.
[03/27/2010 9:48 AM] – FAILURE :IPN validation failed.
[03/27/2010 9:48 AM] – SUCCESS :Paypal class finished.
Then I realised what might be the problem. My IPN was off. However, Paypal asks me for a Notification URL and I can’t enable IPN without it. I just wanted to check that the Notification URL was the same thing as Return URL in the WP eStore settings page. If not, what do I enter for the Notification URL?
many thanksMarch 27, 2010 at 11:17 pm #18235
Hi, You can enter in just the URL of your site as the WP eStore will override this value when it submits the sale information to Paypal (you just need to make sure IPN is enabled in your PayPal account). By default it is enabled.
Here is a post that explains the PayPal profile settings you should have:
IvyMarch 28, 2010 at 10:13 am #18236
Okay, I enabled IPN at Paypal and I entered the return URL anyway. I tested that my IPN was working and received confirmation via Sandbox and in my debug log. Great… I thought.
I just had a sale go through. It’s the first since I changed IPN as far as I’m aware. When the buyer was redirected to the Return URL, there was no download link available. They emailed me to tell me this and I sent the file manually.
I went in as a buyer and verified that this was the case. On the page at the return url on my site after getting back from Paypal, instead of a download link, there were details of my email address and the price I’d paid.
Additionally, I did not receive an email with a download link.
So now, instead of no download link by email and a download link at the return URL, with IPN enabled my buyers now have no download link at all!
For the time being, I’ve disabled IPN. Could you advise please?March 28, 2010 at 10:56 am #18237
Do you have auto return turned on in your Paypal settings? If you do Paypal does not send the Post Payment Data back to the site. When this happens the plugin can not verify the sale to post the links on the post payment landing page. If the plugin can not verify a sale it will not send out the product. The email is send because it uses the IPN to verify the sale.
IvyMarch 28, 2010 at 11:02 am #18238
Okay if you want PayPal’s IPN feature to work you will need IPN to be enabled (it doesn’t hurt to have IPN enabled on your account).. so don’t Disable IPN.
If you are not getting the email with the download link after the purchase, then run a test live transaction with “Debug Enabled” then share the debug file content and we will be able to tell you what the issue is.March 29, 2010 at 8:51 pm #18239
Hi I just did as you said. Firstly, with IPN disabled, I bought a product for a penny. I then repeated this with IPN enabled.
The first time, my return page had no download link. The second time, I had download link.
However, I got no email from either transaction. I even checked my spam. As a seller, I receive a notification each time with a copy of what the buyer should receive. But they don’t get the emails.
Here’s the debug record for my last transaction. I’ve removed personal information betweeen square brackets.
[03/29/2010 1:43 PM] – SUCCESS :Paypal Class Initiated by 184.108.40.206
[03/29/2010 1:43 PM] – SUCCESS :Post string : [redacted]
[03/29/2010 1:43 PM] – SUCCESS :Connection to http://www.paypal.com successfuly completed.
[03/29/2010 1:43 PM] – SUCCESS :IPN successfully verified.
[03/29/2010 1:43 PM] – SUCCESS :Creating product Information to send.
[03/29/2010 1:43 PM] – SUCCESS :Transaction Type: Shopping Cart
[03/29/2010 1:43 PM] – SUCCESS :Number of Cart Items: 1
[03/29/2010 1:43 PM] – SUCCESS :Item Number: 1
[03/29/2010 1:43 PM] – SUCCESS :Item Name: Arukiyomi’s Full v4 (TESTING ONLY!)
[03/29/2010 1:43 PM] – SUCCESS :Item Quantity: 1
[03/29/2010 1:43 PM] – SUCCESS :Item Total: 0.01
[03/29/2010 1:43 PM] – SUCCESS :Item Currency: GBP
[03/29/2010 1:43 PM] – SUCCESS :Download Link :
Arukiyomi’s Full v4 (TESTING ONLY!) – [LINK REMOVED]
[03/29/2010 1:43 PM] – SUCCESS :Product Email successfully sent to [EMAIL REMOVED].
[03/29/2010 1:43 PM] – SUCCESS :Notify Email successfully sent to [/email][EMAIL REMOVED].
[03/29/2010 1:43 PM] – SUCCESS :Updating Products, Customers, Coupons, Sales Database Tables with Sales Data.
[03/29/2010 1:43 PM] – SUCCESS :Products, Customers, Coupons, Sales Database Tables Updated.
[03/29/2010 1:43 PM] – SUCCESS :Updating Affiliate Database Table with Sales Data if Using the WP Affiliate Platform Plugin.
[03/29/2010 1:43 PM] – SUCCESS :Not Using the WP Affiliate Platform Plugin.
[03/29/2010 1:43 PM] – SUCCESS :Paypal class finished.
March 29, 2010 at 11:05 pm #18240
Hi, The debug log does show that everything is happening like it should with the eStore.
Somehow the email is getting lost between your server and the inbox.
This email not arriving checklist will help you figure out where it is getting lost:
Let me know if this helps.
IvyMarch 30, 2010 at 10:03 am #18241
I did contact my hosts about this. They recommended that I follow documentation on this page
I just wanted to check with you that doing so would be a waste of time if I have eStore and the change mail plugins installed.
However, they did recommend this because they said that servers are set up to block emails that seem to originate from a “nobody” address. When I checked the seller email notification I received using your change mail plugin and eStore, I noticed this in the header:
from nobody by thames.networkredux.net with local (Exim 4.63) (envelope-from <email@example.com>) id 1NwYAb-00017q-HP for [my email removed]; Tue, 30 Mar 2010 02:55:37 -0700
in other words, despite using your plugins, email is being generated from “nobody”. This will be blocked by other servers won’t it?
If I do follow the documentation at their link, what should I do with the php code there? I’m not sure where I should put it to get this thing working.March 31, 2010 at 2:16 am #18242amin007Participant
Okay lets reset our conversation… Looking at your debug file I can see that everything is going fine. The main problem you are having is that the email is getting sent from “firstname.lastname@example.org” and is getting blocked by the mail server. Let’s try to address this.
The email will be sent from the address specified in the “From Email Address*” field in the settings menu of eStore. Lets do the following:
1) Make sure that you are not using a plugin similar to the WP Change Email Details Plugin
2) Make sure that the “Use WordPress Mailing System” option is checked and there is a valid email address value in the “From Email Address” field.
3) Perform a test transaction and let me know what the from email address of that email is set to?March 31, 2010 at 9:30 am #18243
thanks so much for your perseverance with this. I really appreciate your support. It’s one of the things that makes you stand out from the crowd in this marketplace.
I deactivated the Change Email plugin and checked those settings. I then did a test transaction and got no email as a buyer. The email notification I received as a seller had this in the from field:
which is what I’d expect. But if I show all headers, I see
Received: from nobody by thames.networkredux.net with local (Exim 4.63) (envelope-from <email@example.com>) id 1Nwu6m-0008OU-VV for arukiyomi[AT MARK REMOVED TO PREVENT SPAM]johnandsheena.co.uk [which is my From Email Address in eStore settings]; Wed, 31 Mar 2010 02:21:08 -0700
networkredux.net is my host.
AFAIK, that’s what’s causing the emails to vanish into the ether. At least that’s what my host tells me because, they say, no self-respecting server is going to allow mail to its clients that is from a “nobody” address like this.April 1, 2010 at 7:35 am #18244amin007Participant
Thanks for that… not sure why it’s putting nobody in the header. When the “Use WordPress Mailing System” checkbox is checked the plugin simply uses WordPress’s mailing function and I am sure that WordPress’s mailing function code doesn’t have any issues.
Can you try a transaction with the “Use WordPress Mailing System” checkbox unchecked and see if the same happens?April 1, 2010 at 12:08 pm #18245
Yes I will but I don’t have time right now. I just wanted to post that a buyer just got returned to my site and found there was no download link on the return page. This is not the first time it happens and it doesn’t happen to everyone.
I will try the transaction with use wordpress mailing disabled this afternoon or evening.
ThanksApril 1, 2010 at 12:21 pm #18246
Hi, The links on the “Thank You” page wont’ show up unless you follow this documentation and set everything up correctly:
IvyApril 1, 2010 at 12:24 pm #18247
okay… managed to find some time to do it. Without the use wordpress box checked I get delivery failed emails for both buyer and seller notifications. Here’s part of the header of the returned buyer email:
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
[BUYER EMAIL REMOVED]
Mail sent by user nobody being discarded due to sender restrictions in WHM->Tweak Settings
This is a copy of the message, including all the headers.
Return-path: <[SELLER EMAIL REMOVED>
Received: from nobody by thames.networkredux.net with local (Exim 4.63)
(envelope-from <[SELLER EMAIL REMOVED>)
The seller notification email also failed in the same way. Here’s the header for that one:
Received: from mailnull by thames.networkredux.net with local (Exim 4.63) id 1NxJPL-00085o-QA for [SELLER EMAIL REMOVED]; Thu, 01 Apr 2010 05:21:59 -0700
This is exactly what I’d expect without the box checked. The thing is, why with the box checked a) does it seem to originate from nobody and b) why does the seller email get sent and arrive but the buyer email just vanish i.e. why do I get no delivery failed notifications with the box checked if the buyers aren’t getting emails?
- You must be logged in to reply to this topic.