I need to implement an adaptive form that redirects the user to a payment provider on submit (sending through only a subset of the entered data). Once the user payed, he will be redirected back to AEM. The payment provider will return with either an OK (with additional payment confirmation data) or a NOT OK. Happy path will need to trigger an email with a PDF containing all of the entered fields and redirect to a Thank You Page. Sad path will need to redirect to the same form page with an error message and the previously filled field data.
Question I have is which is the best way to get all this setup with using the OOTB Forms? Should I create a custom submit action that goes to a custom servlet which will redirect to the payment provider? But since I am redirecting out half way through the form processing, where do I keep all of the entered fields meaning how can I retain the session in order to have the data available for the pdf or the error form page?
We want to submit the form from our servlet, when payment is successful. So as you stated, delete draft and create submission. We understand your suggestion to use the Forms Portal Draft and Submission Services, and believe that SubmitMetadataService.saveMetadata(Map<String, Object> metadataMap) is what we need for form submission. Am I correct? And if so, then how do we build the "metadataMap" ?