For some reason when you attempt to complete a PayPal payment on my site, when it redirects back to my site from PayPal it is getting a null OrderPaymentInfo from the session. This causes the order to fail with a server error, as it then calls processor.SetCheckoutDetails.
var paymentInfo = this.Session["OrderPaymentInfo"] as ProcessPaymentRequest;
I threw in some hacky statements into the code and despite there being a SessionID, when I try something like this inside GetDetails
throw new ArgumentNullException(this.Session.SessionID);
It actually is returning blank/null even though I can see that it exists in the browser console. I can't seem to figure out what is happening. At first I thought it was because the SessionID cookie was not set with Secure = true, but even after fixing that it still doesn't want to work. What could be happening?
This is all occurring within the PayPalExpressController.GetDetails method. In summary: everything works properly during checkout until you confirm the PayPal payment, once you do, it redirects back to the site and cannot get the OrderPaymentInfo it stored previously and then just fails and for some reason a call to this.Session.SessionID inside GetDetails returns empty.