Схема работы


Диаграма


Описание схемы работы

  1. На странице выбора товара или услуги у коммерсанта после подтверждения формы заказа отправляется запрос на web-сервер коммерсанта.
  2. На стороне web-сервера коммерсанта при необходимости делаются предварительные проверки заказа, формируется подпись данных,
    и запрос перенаправляется методом GET на сервер eCom (https://jpay.jysanbank.kz/ecom/api).
  3. Система eCom делает предварительные проверки заказа. Если все проверки пройдены успешно, то eCom формирует для клиента страницу оплаты (шаг 3).
    Если в запросе на шаге 2 был предоставлен идентификатор аутентифицированного на сайте коммерсанта клиента CLIENT_ID, то на странице клиенту предоставляются
    для выбора список карт, по которым этот клиент уже ранее проводил успешные оплаты. Примечание: возможность выбора карты доступна только если
    банк принял решение о хранении данных карт клиентов, подробности можно узнать у представителя банка. Если какая-нибудь из проверок не пройдена, то клиенту формируется страница с описанием ошибки и на сайт коммерсанта отправляется результат обработки заказа (шаг 8).
  4. Клиент вводит реквизиты своей платежной карты, которой он собирается оплатить заказ, и подтверждает оплату заказа.
  5. eCom производит проверки заказа. Если все проверки пройдены успешно, то eCom отправляет запрос в MPI на оплату заказа по введенной или выбранной
    карте клиента (шаг 5). Если какая-нибудь из проверок не пройдена, то клиенту формируется страница с описанием ошибки и на сайт коммерсанта отправляется результат обработки заказа (шаг 8).
  6. MPI при необходимости запрашивает у клиента пароль 3DSecure, затем производит операцию оплаты. После этого MPI возвращает результат операции в eCom (шаг 7).
  7. Система eCom формирует для клиента старницу с описанием результата операции.
  8. Если указан адрес в параметре 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"].";" );

  9. Если на шаге 2 был указан email клиента, то клиенту на этот адрес отправляется письмо с результатом операции.