не важно, как именно оплачивать🌚
формировать заказ нужно в любом случае
- для истории
- чтобы зафиксировать, по какой цене купили товар(-ы)
- интеграция с аналитикой при необходимости
- как раз избежать подделки суммы оплаты и прочих махинаций
Если в одном заказе может быть много товаров - можно сделать простейшую корзину на сессиях, сначала туда добавили товары, кнопка "подтвердить заказ", при нажатии создали заказ, получили его айди, и дальше либо сразу оплату провели с баланса, либо кинули на страницу типа /checkout/1234567
где 1234567 уже полученный ид заказа, и там по нему получили данные (сумму, скидки, etc), проверили баланс, списали, подтвердили оплату