Вы упускаете вопросы по безопасности со стороны платежных систем. Очень часто они интересуются "а с какой страницы у вас происходит оплата", "а какой адрес у вашего интернет-магазина" и .т.п. Решалось на верхних уровнях, где объясняли нетипичность проекта. Надо просто к этому быть готовым.
Технически я делал такую штуку на основе не взлетевшего проекта платежного агрегатора.
По поводу технической реализации нужно api которое будет:
1) создавать ордер с параметрами siteId, amount, email, externalOrderId, successUrl, declineUrl, callbackUrl и возвращая в ответ orderId
2) принимать команду на платеж по orderId
3) отстукивать siteId при получении колбеков от платежных систем по указанному callbackUrl с параметрами orderId, externalOrderId, amount и sign
Можно реализовать и функционал для возвратов, добавив дополнительный параметр в api методе для колбека.
Первые 2 пункта позволяют избавиться от задвоений при "плохом интернете", но нужно вешать лок через табличку типа [key, timestamp] при обработке 2-го пункта.