Magento – PayPal Hosted stuck at Payment Pending

ce-1.7.0.2paymentpaypal

Having an issue with UK PayPal Hosted. To start, this is not an issue processing payments normally. As long as a customer completes the checkout, including paying either with a credit card or PP account, everything is fine.

The issue is when a customer confirms the order at the checkout review step, but then fails to complete the order by actually paying, either with a credit card or PP account. In that case, an order is created with a status of Payment Pending. The order shows up in the backend but not on the client dashboard (which is it seems is default for Magento).

The problem is that these orders cannot be progressed. The only way to move forward is with the Invoicing system. With orders using an online payment method there are three options when creating an invoice:

Capture Online: fails – this is to be expected as no attempt was made to actually make the payment at PP so the payment fields on the order are all blank, hence nothing to capture from PP.

Capture Offline: fails – it generates an invoice which has a status of PAID, but the order itself remains Payment Pending and there's no way to change the order status itself to PAID. Creating a Credit Memo for the "paid" invoice sets the order status to Closed so it's now a dead order.

Not Capture: fails – the behaviour here is plain bizarre! It generates an invoice with a status of Pending and the order remains Pending Payment. Only option then is to hit the Capture button on the invoice, which of course fails. Then if you hit Cancel or back on the invoice screen, it bizarrely sets the order status to PAID (total paid remains 0.00), generates an admin order email (extension) but from the default store and not the store the order was placed on, but no order confirmation is send to the customer.

So in this scenario, it seems the only thing the store owner can do is cancel the order because there's no way to progress it to the next step.

Capture Offline would seems to be the most sensible option here as it generated a paid invoice, but does anyone know how to fix Magento so using this option sets the Order Status to PAID as well, completing the order process i.e. sending confirmation email to customer.

Another option would be to change the payment method on the order to an "offline" method, but there's no means I can see for an admin to do this on orders.

Best Answer

The answer would be in Magento 1.8.*. They hide the button "Confirm/complete order" for HSS payment method when customer gets to payment step. They also added a message to let customers know that they have to complete the payment first and need to press "Pay" button.

If the customers do not press 'Pay' button, it makes sense to invalidate the order (cancel) because they didn't agree to pay - no authorize or capture sold was made.