Как я могу уведомить Клиента, когда Платежные системы отправляют запрос на мой URL обратного вызова API? - PullRequest
0 голосов
/ 10 апреля 2020

В настоящее время я создаю веб-сайт с Vue. JS в качестве моего внешнего интерфейса c и пишу отдельный внутренний API, размещенный в облаке с использованием Node и Express.

В настоящее время Я хочу интегрировать платежи с платежным провайдером под названием Swi sh. Этот API работает так, что клиент отправляет запрос на платеж с URL-адресом обратного вызова, который Swi sh вызывает в случае ошибки платежа или его оплаты. Этот URL будет отправлять запрос к моему API. Я хочу знать, как «Создать запрос платежа» может асинхронно ожидать отправки почтового запроса моим провайдером платежей, чтобы он возвращался, когда Swi sh (провайдер платежей) завершил обработку платежа, и я могу затем обновить статус платежа в Vue пользователю.

Мне пока не удалось решить эту проблему без опроса. Простое решение состоит в том, чтобы запрос Post, который посещает Swi sh, обновлял какое-то состояние в моей базе данных SQL, а "Создание запроса платежа" вызывалось каждые 10 секунд или около того, чтобы проверить, была ли база данных изменена. Есть ли способ сделать это без опроса? Могу ли я каким-то образом вызвать какое-либо событие, чтобы разбудить спящую конечную точку Express из другой конечной точки Express? Или я мог бы передать URL обратного вызова какой-нибудь webhook или что-то еще, чтобы обратный вызов Swi sh мог напрямую уведомлять мой Vue внешний интерфейс, когда он вызывается?

Для временных шкал требуется максимум 3 минут для Swi sh для вызова URL обратного вызова.

1 Ответ

0 голосов
/ 10 апреля 2020

Я думаю Websockets должно работать для вашей проблемы. Как вы уже сказали, вы должны сохранить состояние платежа в вашей базе данных. Когда приложение Swi sh вызывает ваш URL-адрес обратного вызова, вы отправляете запрос веб-сокета с новым состоянием и необходимой информацией. Состояние требуется, когда соединение веб-сокета воссоздается из-за ошибок в связи.

Некоторые ссылки, которые могут быть полезны:

...