не знаю, найдете ли вы это достаточно подробно, и в любом случае, если вы реализуете что-то, связанное с финансовыми операциями, вам следует проявить особую осторожность.
Предположим, например, что какая-то компания, которая продает товары онлайн, например, книги,
на своем сайте A (веб-приложение A) желает осуществлять платежи с использованием внешнего платежа
сайт B (веб-приложение B, управляемое банковской компанией).
Пользователь заполняет форму с подробной информацией о книгах, которые он хочет купить, и отправляет ее.
Затем он перенаправляется на HTTPS-страницу A, где ему сообщают, что он заказал
«Экстремальное программирование» и «Гибкое программирование» всего за 40 $ и спросили
он подтверждает покупку. Пользователь нажимает кнопку «Да», отправляя
запрос Req1.
На этом этапе веб-приложение A связывается с веб-приложением B (это деловое общение, без браузеров!) Через SSL (если в Java используется httpclient) и сообщает ему: я хочу перенаправить пользователя на ваш сайт. кто хочет заплатить мне 40 $. Ответ: ОК, вот идентификатор запроса Id1 (что-то вроде R543E32pU878 ..). Теперь A, всегда в ответ на подтверждение пользователя (Req1), отправляет перенаправление в браузер пользователя на внешний платежный сайт B с этим Id1 внутри перенаправления. Затем B представляет пользователю (через HTTPS) данные о покупке и просит ввести личные данные пользователя и данные кредитной карты. Пользователь вводит их и нажимает «продолжить», отправляя запрос Req2. B связывается (опять же, без браузеров) с серверами VISA / bank (через SSL) и, в случае успеха, получает идентификатор транзакции Id2.
Теперь B связывается с A (SSL, браузеры не задействованы) и уведомляет его, что транзакция прошла успешно, и сообщает A идентификатор транзакции, получая от A подтверждение
он получил сообщение. Наконец, B отвечает на пользовательский запрос Req2 (помните, что пользователь все еще ожидает ответа на отправку своих личных данных и данных кредитной карты) перенаправлением на сайт A, который включает в себя идентификатор запроса Id1. Затем A отправляет пользователю страницу, на которой пользователь уведомляется об успешной транзакции и, на всякий случай, визуализирует идентификатор транзакции Id2.
Я не пытался выяснить, существуют ли отраслевые стандарты для такого взаимодействия; Насколько я знаю, различные банковские учреждения осуществляют такое взаимодействие способами, которые не являются полностью идентичными.