В два этапа изначально сделано для корректного формирования подписи. Можно сразу пробовать передавать форму по GET-запросу, с внесением минимальных изменений в скрипт, но в этом случае, я не уверен, что все будет идти как по маслу.
При первичной обработке формы с POST-запросом, в таблицу твоей базы так же формируется запись о пользователе и планируемой оплате, которую считывает уже мерчант в последующем. Без этой записи не будет производиться начисление. Вообще сделать можно попробовать, но я не уверен еще и в том, что люди не будут обходить такой метод.
Одноэтапный переход к оплате обычно необходим, когда эта оплата работает по ДВУМ условиям одновременно:
-Сумма оплаты всегда фиксированная.
-Произведенная оплата не должна производить никаких действий в базе данных.
Это как просто перевод денег между пользователями. Типа копилки. Я установил копилку на сайте с приемом донатов 10 руб. и все )
Более другого логического объяснения пока не представляю.