Have a look at the problem here. https://github.com/magento/magento2/issues/25550
Preconditions (*)
Magento 2 upgrade from Magento 2.2.6 to 2.3.2 Paypal express method Steps to reproduce () create any customer with Magento 2.2. upgrade the Magento 2.2.* to Magento 2.3.2 enable Paypal express checkout Expected result () order should be recorded in Magento 2.3.2 backend Actual result () customer is charged properly. payment deducted from their account and deposited to client's account No order found in the backend and that order id skip This is a very terrible case, The version upgrade should ease the user experience and of course the developer but it shouldn't introduce a new bug or errors.
I had made a dip dive into the code base and here is the process of how PayPal checkout happen.
SetExpressCheckout GetExpressCheckoutDetails DoExpressCheckoutPayment I suspect the following from the core file and log files that.
GetExpressCheckoutDetails doesn't get a SHIPTOPHONENUM when order are recorded in the backend but charged In addition to this, I have also come to know that 3. DoExpressCheckoutPayment is not sending an email and phone number data in the array and sending null instead.
The following exception might be the cause of the above
We can't save the address: Email has a wrong format
We are getting a lot of orders through PayPal express too and it's not a constant issue but we are having a problem with 1 to 2 orders a day and mostly happen with old customer account ( which was done while with Magento 2.2.6)
I am looking for any thoughts on this from an expert developer and Magento core team what potential causes would be there apart from my analysis.
Let me know your thought and any quick help will be highly appreciated.
Regards, Sam