We have a site based on Drupal Commerce and Paypal WPS payment method. After launch, we found some orders by Paypal is stuck in the status of “Checkout: Confirm order” and not go to the next status.
After checking we find when a Paypal payment finished, the user will be gave two options. One is go back to our site, another is go to Paypal site. And if a user chose the second option, we will lost the order confirmation from Paypal.
Luckily I find Paypal has a “auto return” option for us. So we can force user to redirect to our site after he/she finished the payment, without giving a option to Paypal site.
It works but has some exceptions. We still found some orders are not confirmed after set our Paypal to “auto return”.
The issue be found when a user chose Paypal but select the credit card to pay. This is called “Paypal account optional”, and if this one is turning on, the user using credit card will not be redirected. As in the Paypal docs said:
Note: If you have turned on Auto Return and have chosen to turn on PayPal Account Optional for new users, a new user will not be automatically directed back to your website, but will be given the option to return.
So turn off this option will fix the issue.
For more solutions, we can look at this discussion on drupal.org: “When completing the checkout process” never fires if a rule sets order complete on IPN
The solution works around “auto redirect”: https://www.drupal.org/node/2485507