I'm working on a site that is running on Drupal 6.26 & Ubercart 6.x-2.9. Credit card payments are processed via PayPal WPS.
The site sells a few shippable items, but is mostly selling downloadable files. The site has been working fine until a week or so ago. A customer would be able to order and pay for a file, and they would receive an email with a link to the file, no problem. Now something has changed and any orders are stuck at "Pending", even though Paypal has processed their payment. The error log shows repeated attempts by PayPal to send the IPN, but Drupal is not processing it.
I've googled this and been through the forums both here and at Drupal.org, and it seems common that my situation would be due to configuration errors. Nothing on our Drupal site has changed in many months, so I'm inclined to believe that something changed at PayPal or at our ISP (this is a shared hosting setup).
In any case, I've gone through my configuration and tried a number of things to no avail. The documentation for configuring WPS that's out there is old in a lot of cases, and contradictory, but from what I've read, I do NOT need to enable IPN Messaging in my settings at PayPal - Ubercart sends a request for an IPN response with each payment submission. I tried sending some test orders (to the live Paypal server, not sandbox), and got the same result whether IPN was enabled or disabled in the Paypal settings.
Here's a detailed description of the order process:
- put through an order and paid with credit card at paypal
- recieved an email from Paypal
- Even though Auto Return is ON in the Paypal settings, I was not automatically sent back to our site - I had to click the 'Return to website' link on Paypal.com in order to return. Until I did so, the order was listed as "In Checkout" (Under Store Admin->Orders (viewing ALL orders, not just active).
- Clicked the 'Return' link and was sent to our custom cart completion page.
- I received an email from our website "Your order at [Store Name]", and order was updated to "Pending"
- I DID NOT receive an email with a link to the downloadable file
- Recent Log Entries shows that Paypal is sending the IPN over and over:
Recieving IPN at URL for order [Order-number]
This accompanied in the log each time with a 'Page not found' error:
- If I go to view the order in question and manually update its status from Pending to Payment Received, this action triggers the email with the download link, and the order is then set to Completed automatically.
Past orders that were successful are usually accompanied by a uc_paypal message:
IPN transaction verified
... but this is NOT happening all of a sudden.
So the issue is that PayPal is sending the IPN, but it is not being processed correctly by Ubercart. Until recently, the IPNs were working fine, and I don't believe anything has changed on our site. In fact the Ubercart and Drupal Core and some other modules were out of date when I began investigating this problem but updating all modules to their latest has not helped.
My client contacted Paypal and they told her that our server is
giving us a HTTP response of 404 when we try to deliver the IPN. We are looking for a response of 200 and anything else will trigger it to retry until it actually fails out. It will retry 16 times over a 4 day timeframe.
I'm not aware of why that would change. The IPNs are being sent to oursite.com/uc_paypal/ipn/[order-num], as they always have been sent.
I would appreciate any help or suggestions that might be available. I would be happy to provide more information if necessary.