Greetings,
I have implemented a Cyber Source Secure Acceptance and Silent Post payment plugin prototypes. Both prototypes work as expected redirecting and getting responses back to NopCommerce. That said I have a few user experience issues with the RemotePost setup in NopCommerce? I already have a plugin to override these user experience issues. The below scenario shows the out of the box order workflow using remotepost followed by some questions.
Scenario: When the confirm button is clicked.
-First the PlaceOrder Method is hit in the OrderProcessing Service.
-Next in the case of a standard cart the ProcessPayment method is hit. * only to set the order status to pending?
-Next back inside the PlaceOrder Method the processPaymentResult.Success is = true? * due to the setting of the status to pending?
-Next the order is saved and notifications are sent out like the order has been completed??
-Then the PostProcessPayment which builds the RemotePost data and sends the customer to remote payment gateway?
-While the customer is still on the payment gateway page with no payment entered?
-Finally the customer enters the payment information and either succeeds or fails. The gateway in the cause send the response back to a Return method.
Question:
Why is the order saved before payment has been processed. Was this by design and if so why? Is the only alternative to override "like I have" the OrderProcessingService PlaceOrder and/or other Controllers actions or events so the order is not created until the payment redirect has been completed.
NopCommerce Version 3.90
Feedback?
Thanks,
SliGamer