Схема работы
Диаграма
Описание схемы работы
- На странице выбора товара или услуги у коммерсанта после подтверждения формы заказа отправляется запрос на web-сервер коммерсанта.
- На стороне web-сервера коммерсанта при необходимости делаются предварительные проверки заказа,
формируется подпись данных,
и запрос перенаправляется методом GET на сервер eCom (https://jpay.jysanbank.kz/ecom/api). - Система eCom делает предварительные проверки заказа. Если все проверки пройдены успешно,
то eCom формирует для клиента страницу оплаты (шаг 3).
Если в запросе на шаге 2 был предоставлен идентификатор аутентифицированного на сайте коммерсанта клиента CLIENT_ID, то на странице клиенту предоставляются
для выбора список карт, по которым этот клиент уже ранее проводил успешные оплаты. Примечание: возможность выбора карты доступна только если
банк принял решение о хранении данных карт клиентов, подробности можно узнать у представителя банка. Если какая-нибудь из проверок не пройдена, то клиенту формируется страница с описанием ошибки и на сайт коммерсанта отправляется результат обработки заказа (шаг 8). - Клиент вводит реквизиты своей платежной карты, которой он собирается оплатить заказ, и подтверждает оплату заказа.
- eCom производит проверки заказа. Если все проверки пройдены успешно, то eCom отправляет запрос в MPI на оплату
заказа по введенной или выбранной
карте клиента (шаг 5). Если какая-нибудь из проверок не пройдена, то клиенту формируется страница с описанием ошибки и на сайт коммерсанта отправляется результат обработки заказа (шаг 8). - MPI при необходимости запрашивает у клиента пароль 3DSecure, затем производит операцию оплаты. После этого MPI возвращает результат операции в eCom (шаг 7).
- Система eCom формирует для клиента старницу с описанием результата операции.
- Если указан адрес в параметре BACKREF (описание после таблицы) или адрес по уполчанию в АРМ для данного
коммерсанта,
то система eCom после обработки платежа в фоновом режиме формирует POST-запрос с результатом операции на этот
адрес:
Параметры запроса: Параметр Описание order Номер заказа mpi_order Номер заказа MPI amount Сумма операции currency Валюта операции res_code Код результата:
0 - Транзакция успешно завершена
1 - Повторная транзакция
2 - Транзакция отклонена
3 - Ошибка обработки транзакции
4 - Информационное сообщение
rc Код результата MPI rrn RRN (возвращается только в случае успешной операции) sign Подпись terminal Терминал (для совместимости со старыми версиями, не участвует в подписи) result Код результата (повторяет значение res_code, для совместимости со старыми версиями, не участвует в подписи)
Например, если указать в BACKREF адрес https://www.google.kz, то браузер будет перенаправлен на адрес: https://www.google.kz с параметрами order=529619375&mpi_order=1012121121529619375&amount=0.9¤cy=EUR&res_code=28&rc=00&rrn=12345678901&sign=124542232343.
Алгоритм проверки подписи поля sign следующий, нужно собрать в одну строку значения всех параметров в указанном порядке, через разделитель «;», затем добавить эту строку к значению секретного ключа SHARED_SECRET (этот ключ индивидуальный для каждого коммерсанта), и вычислить из полученной строки значение хэш SHA512. Например, на PHP это будет выглядеть так:
vSign=hash("sha512",C_SHARED_KEY.
.$_POST["order"].";"
.$_POST["mpi_order"].";"
.$_POST["amount"].";"
.$_POST["сurrency"].";"
.$_POST["res_code"].";"
.$_POST["rc"].";"
.$_POST["rrn"].";" ); - Если на шаге 2 был указан email клиента, то клиенту на этот адрес отправляется письмо с результатом операции.