voronkovich / sberbank-acquiring-client

PHP client for Sberbank and Alphabank acquiring REST APIs
MIT License
190 stars 55 forks source link

Как здесь получить результат оплаты пользователя? #9

Closed Pefren closed 5 years ago

Pefren commented 5 years ago

Здравствуйте. Сделал чтоб человек отправился платить за свой заказ и после успешного выполнения оплаты его возвращает на статическую страницу "спасибо что заплатили". Но как я могу получить ответ от сбербанка, что по такому-то заказу всё-таки произведена оплата, чтобы я на своем сайте поменял статус оплаты?

Передавать в ссылку сообщения успешной оплаты гет-запроса заказа считаю небезопасным (можно ничего не платить, а просто перейти на эту ссылку и поменять на сайте статус заказа, хотя и в сбербанке будет показано, что ничего не платили, но менеджеры могут не проследить, что в сбербанке не прошла оплата).

kotyaro commented 5 years ago

Для этого в документации сбербанка есть callback уведомления с контрольной суммой.

voronkovich commented 5 years ago

@Pefren, Я обыно статусы платежей проверяю по CRON. Т.е. каждые 5-10 минут запускается задача, загружает из БД все активные платежи и делает запросы к шлюзу через метод getOrderStatus. Можно добавлять контрольную сумму, как предложил @kotyaro, но callback имеет лимит не более 3-х раз или около того. Т.е. если ваш сервис был какое-то время не доступен, он не узнает об обновлении статусов. Но, возможно, лучше использовать оба способа, т.к. callback срабатывает сразу после оплаты и пользователь увидит результаты быстрее.