Yusupov |
|
---|---|
Хотел бы еще упомянуть о таком техническом моменте как колбэк некоторых ПС (в принципе большинство так работают). Это своего рода предварительный запрос со стороны ПС на сайт магазина, который происходит в процессе оплаты. Некоторые ПС, прежде чем произвести оплату (списать деньги со счета покупателя), проверяют доступность магазина и соответствие полученных данных от магазина. Например так работает ПС Webmoney (опишу, не вдаваясь в детали): Прежде чем совершить списание ПС отправляет запрос на специальный адрес магазина (на сайте) и проверяет сумму, номер кошельна получателя и вообще существует ли счет, который пытаются оплатить в магазине. Если данные верны, то для ПС надо вывести пустую страницу с текстом "YES", либо текст с ошибкой. Например: "ERR: Неверная сумма!" или "ERR: Неверный кошелек получателя!" или "ERR: Счет не найден!". Если ПС "видит" текст "YES", то соответственно происходит списание средств с кошелька покупателя и начисление на кошелек получателя. Далее ПС отправляет данные об успешной оплате на специальный адрес магазина (на сайте), где также происходит проверка полученных данных и изменение статуса оплаченного счета на сайте (либо другие действия после успешной оплате). Здесь также выводится ответ для ПС. Если все прошло нормально, то ПС сообщает покупателю об успешной операции оплаты и перенаправляет пользователя на страницу магазина где выводится сообщение уже для покупателя. Здесь также можно осуществить проверку данных полученных от ПС и вывести соответствующее сообщение. Например: "Оплата прошла успешно!", либо "Некорректная подпись" при несоответствии полученных данных от ПС. Для Яндекса успешным ответом является статус веб-страницы.
header ( 'HTTP/1.1 200' ); - все ок, Надеюсь пригодится. Есть некоторые сомнения, что можно сделать какой-то общий шаблон для всех ПС, но стоит попытаться конечно. Может быть имеет смысл сделать своего рода платежный модуль (ПМ) со своим API (модуль Cotonti), в который уже можно будет подключать отдельные ПС в виде отдельных плагинов. ПМ будет осуществлять функцию формирования "счетов" и механизм делегирования процесса оплаты в выбранный ППС. А дальше уже ППС по результатам операции оплаты (взаимодействия с ПС) сообщает ПМ результат операции. ПМ в свою очередь меняет статус счета, совершает определенные действия и т.д. |