Faced with a tight timeline, we began by researching the existing database and preparing it for our workflows. This included indexing some queries, adding new fields, and adjusting options for sets.
Next, we delved into payment processes, which involved numerous possible branches. We planned actions for each case, including 20 types of failed statuses, recharging attempts, and delayed charging. We explored and tested a bunch of payment processors, aiming to find the perfect fit with all the features we needed.