Главная страница
Навигация по странице:

  • Параметр Описание

  • Обратите внимание! В продуктовой системе на сервере коммерсанта обязательно должна быть проверка значения sign для исключения подделки результата заказа!

  • Секретный ключ SHARED_SECRET ни в коем случае не должен быть доступен кому-либо вне Вашего сервера!

  • 35дд. Руководство оператора Документ предназначен для внутреннего использования Введение 4 Вход в систему 5


    Скачать 2.53 Mb.
    НазваниеРуководство оператора Документ предназначен для внутреннего использования Введение 4 Вход в систему 5
    Дата25.10.2022
    Размер2.53 Mb.
    Формат файлаdocx
    Имя файлаeCom_merchant_instruction_ru .docx
    ТипРуководство
    #754079
    страница3 из 9
    1   2   3   4   5   6   7   8   9

    Отчеты




    Операции.


    В этом отчете выводятся список всех операций организации коммерсанта. Список можно фильтровать по статусам транзакций, по терминалам, а также задавать период выборки (по умолчанию – один месяц).

    Статистика.


    Здесь выводится статистика по операциям организации за указанный период времени. Также можно задать фильтрацию по определенному терминалу.



    Журнал АРМ



    В журнале операций АРМ выводится лог действий пользователей АРМ организации за указанный период времени. Также можно задать фильтрацию по определенному пользователю и по типу операции.

    1. Схема работы



    Диаграмма





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





    1. На странице выбора товара или услуги у коммерсанта при подтверждении формы заказа запрос отправляется на веб-сервер коммерсанта

    2. На стороне веб-сервера коммерсанта при необходимости делаются предварительные проверки заказа, формируется подпись данных, и запрос и запрос редиректом 302 направляется методом GET или POST на сервер ecom. В примере на странице http://host/eCom/static/e/test.html заказ отправляется на сервер ecom напрямую, без редиректа с сайта коммерсанта. Этот пример – только для тестирования, подпись данных должна производиться не на веб-странице, а на сайте коммерсанта!

    3. Система ecom делает предварительные проверки заказа. Если какая-нибудь из проверок не пройдена, то клиенту формируется страница с описанием ошибки (шаг 7) и на сайт коммерсанта отправляется результат обработки заказа (шаг 8). Если все проверки пройдены успешно, то ecom формирует для клиента страницу оплаты (шаг 3). Если в запросе на шаге 2 был предоставлен идентификатор аутентифицированного на сайте коммерсанта клиента CLIENT_ID, то на странице клиенту предоставляются для выбора список карт, по которым этот клиент уже ранее проводил успешные оплаты. Примечание: возможность выбора карты доступна только если банк принял решение о хранении данных карт клиентов, подробности можно узнать у представителя банка.

    4. Клиент вводит реквизиты своей платежной карты или выбирает одну из своих карт, которой он собирается оплатить заказ, и подтверждает оплату заказа

    5. ECom производит проверки заказа. Если какая-нибудь из проверок не пройдена, то клиенту формируется страница с описанием ошибки (шаг 7) и на сайт коммерсанта отправляется результат обработки заказа (шаг 8). Если все проверки пройдены успешно, то ecom отправляет запрос в MPI на оплату заказа по введенной или выбранной карте клиента (шаг 5).

    6. MPI при необходимости запрашивает у клиента пароль 3DSecure, затем производит операцию оплаты. После этого MPI возвращает результат операции в ecom (шаг 7)

    7. Система ecom формирует для клиента старницу с описанием результата операции

    8. Если указан адрес в параметре BACKREF запроса или адрес URL фоновой отправки результата в АРМ для данного коммерсанта, то система ecom после обработки платежа в фоновом режиме формирует POST-запрос с результатом операции на этот адрес с параметрами:




    Параметр

    Описание

    order

    Номер заказа

    mpi_order

    Номер заказа MPI

    amount

    Сумма операции

    сurrency

    Валюта операции

    res_code

    Код результата:

    0 - Транзакция успешно завершена

    9 – Транзакция успешно отменена

    Любые другие значения – ошибка, например:

    1 - Повторная транзакция

    2 - Транзакция отклонена

    3 - Ошибка обработки транзакции

    4 - Информационное сообщение

    8 – Авторизация (блокирование)

    6,7,21 – ошибка mpi

    -1- неизвестная ошибка

    -2 – операция прервана по таймауту (нет результата от mpi в течение часа)

    rc

    Код результата MPI.

    00 – успешно

    другие коды – ошибка

    rrn

    RRN (возвращается только в случае успешной операции)

    sign

    Подпись

    terminal

    Терминал (для совместимости со старыми версиями, не участвует в подписи)

    result

    Код результата (повторяет значение res_code, для совместимости со старыми версиями, не участвует в подписи)

    int_ref

    Внутренний референс (для совместимости со старыми версиями не участвует в подписи)

    card_token

    Токен карты плательщика (только в режиме токенизации! Для совместимости со старыми версиями не участвует в подписи)

    card_to_token

    Токен карты получателя (только в режиме токенизации! Для совместимости со старыми версиями не участвует в подписи)

    card_issuer

    Короткое наименование банка, выпустившего карту плательщика (указывается только если удалось разпознать карту по ее BIN)


    Например, в BACKREF или в поле АРМ «URL страницы результата» указан адрес страницы на сайте коммерсанта, то браузер будет перенаправлен на этот адрес с параметрами заказа, например: order=529619375&mpi_order=1012121121529619375&amount=0.9¤cy=EUR&res_code=0&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"].";"

    );


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



    Перенаправление результата на страницу коммерсанта


    Для того, чтобы на шаге 3 или 8 вместо стандартной страницы результата eCom коммерсант мог отобразить клиенту свою страницу результата на своем сайте, нужно передать адрес этой страницы в параметре BACKREF и добавить в адрес параметр redirect=true, или внести этот адрес в поле АРМ «URL страницы результата, то к указанному адресу будут добавлены параметры результата операции, и браузер клиента будет перенаправлен на этот адрес методом GET.

    Добавляются параметры:

    Параметр

    Описание

    order

    Номер заказа

    mpi_order

    Номер задаза MPI

    rrn

    RRN (возвращается в REF, только в случае успешной операции)

    res_code

    Код результата операции:

    0 - Операция успешно завершена

    иначе – код ошибки

    amount

    Сумма операции

    сurrency

    Валюта операции

    res_desc

    Описание результата из MPI

    sign

    Подпись


    Например, если указать в BACKREF адрес https://www.google.kz?redirect=true, то браузер будет перенаправлен методом GET на адрес: https://www.google.kz?redirect=true&order=529619375&mpi_order=529619375& res_code=0&amount=0.9¤cy=EUR&res_desc=12123&desc=111&sign=12345678

    Алгоритм проверки подписи sign следующий: нужно собрать в одну строку значения всех полей заказа в указанном в таблице порядке через разделитель «;», затем добавить эту строку к значению секретного ключа SHARED_SECRET (этот ключ индивидуальный для каждого коммерсанта), и вычислить из полученной строки значение хэш SHA512. В строках desc, res_desc перед обработкой нужно убрать все переносы строк. Например, на PHP это будет выглядеть примерно так:

    vSign=hash("sha512",

    C_SHARED_KEY

    .$_POST["order"].";"

    .$_POST["mpi_order"].";"

    .$_POST["rrn"].";"

    .$_POST["res_code"].";"

    .$_POST["amount"].";"

    .$_POST["сurrency"].";"

    .preg_replace("/\n|\r/g","",$_POST["res_desc"]).";"

    );

    Обратите внимание! В продуктовой системе на сервере коммерсанта обязательно должна быть проверка значения sign для исключения подделки результата заказа!

    Секретный ключ SHARED_SECRET ни в коем случае не должен быть доступен кому-либо вне Вашего сервера!
    1   2   3   4   5   6   7   8   9


    написать администратору сайта