Как обновить баланс пользователя на странице после обработки платежа?
Доброго времени суток. На сайте имеется баланс в шапке сайта, значение при загрузки берется из базы (поле 'balance' в строке пользователя). Используя API Яндекс кошелька производится оплата и пополнение баланса. Яндекс отправляет запрос на обработчик с информацией о пополнении (оплате), где я меняю значение в базе.
Как после пополнения обновить значение на сайте для пользователя, чтобы ему не обновлять страницу. Желательно без использования регулярного запроса через n секунд на вывод баланса используя высоко нагружающий AJAX (ну или с ним, если это единственный хороший вариант)
Надим Закиров, n-ые запросы легки, но если баланс может не изменятся месяцами, то зачем гонять трафик туда сюда? Даже пускай и сложно, но если не браться за что-то новое, то смысл начинать чему-то обучаться?
Что вам мешает после оплаты, вернуть пользователя на специальную страницу, которая проинформирует остальные вкладки о том, что была оплата на такую то сумму и автоматом самозакроеться?
Надуманная проблема имхо у вас. При рефреше руками страницы баланс выводится актуальный ? А пытаться его автоматом рефрешить на N вкладках, которые открыты у пользователя имхо не нужная задача. Сбербанк вообще не парится. Если ты в лк и тебе пришел перевод, то ты его видишь в движениях, но баланс карты не обновиться пока ты заново не выйдешь и не войдешь.
Отправил на оплату. Если пользователь пришел обратно по суксес урлу (и авизо уже прошло), то пишите Ваш платеж успешно обработан (Баланс столько-то). Если авизо гдето зависло, то пишите "Ваши деньги скоро поступят на ваш баланс"
Не обновлять баланс легко, но мне самому для развития не помешает узнать как это сделать и клиенту будет приятнее получить новый баланс без лишнего обновления страницы
Мечты ваши и клиента, что оплат будет много и часто. Функционал будет делать полезную работу очень редко.
Способы следующие:
1. Периодический ajax запрос
2. Лонг пулл соединение к вебсокету
3. обработка web push
Все только, чтобы обновить одно число раз в месяц ? Ужасный оверхед .
Олег, Благодарю за ответы. 1 вариант не подходит т.к. пополнение баланса будет крайне редким, а вот каждый раз нагружать сервер ради того, чтобы узнать что ничего не произошло - не очень выгодное дело. 2 и 3 варианты обязательно почитаю и запишу себе. Каждый из вариантов может подойти и пригодиться в любой момент