The current payment flow is hard to predict and follow due to runtime execution and context-based decisions. The request is to introduce a process flow concept to clarify actions, their order, and provide a visual representation, moving beyond the single "purchase" process.
Right now a lot of stuff is happening at runtime. The payment flow is hard to predict and follow. It is hard to say: 1. What actions were executed? 2. What was the order of those actions? 3. The decisions is heavily based on the context (payment details). 4. There is no a visual representation of the process. Do we need a redirect, or should we show a form. We do not know until we start executing the request. 5. Right now Payum support only one process and it is the purchase. Some gateways also support recurring payment but the implementation is not that good. The process flow could improve it. Recently we've been playing with [process virtual machines](https://github.com/formapro/pvm) and I realized that it could be a good fit for Payum. So I did a proof of concept. It shows how Paypal ExpressCheckout may look like. The code is here: https://github.com/formapro/pvm-demo/blob/master/src/AppBundle/Controller/PaypalController.php and the demo is here: https://pvm-demo.for