Those who, after a seemingly successful upgrade from Magento 1.3.x to Magento 1.4.0.1, have problems with Magento acknowledging PayPal payments (changing order status from Pending Payment to Processing) and sending out New Order emails to their clients should do/check the following things:
In PayPal: Go to My Account -> Profiles -> More Options -> Instant Payment Notification Preferences -> Edit Settings and change instant payment notification (IPN) URL in PayPal IPN settings from:
http://www.yoursite.com/paypal/standard/ipn/
to:http://www.yoursite.com/paypal/ipn/standard/
In Magento admin panel: Go to Systems -> Configuration -> Payment Methods -> PayPal Website Payments Standard and check that
Payment Actionis set toSaleandNew Orderstatus toProcessingIn Magento code: In file
Ipn.phplocated inapp/code/core/Mage/Paypal/Model/Ipn.phpfind function:public function getIpnFormData($key = null)
comment out line://return isset($this->_ipnFormData[$key]) ? $this>_ipnFormData[$key] : null;
and add the following line immediately after it:return isset($this->_ipnFormData[$key]) ? urldecode($this->_ipnFormData[$key]) : null;
This should do it. Your order status should be changing fromPending PaymenttoProcessingand emails should work also.