|
|
Home
Описание протокола DKCP-UserПо стандарту ExDK реализовано несколько протоколов Системы, представляющие из себя спецификации данного стандарта. Ниже описаны отличия и дополнения спецификаций DKCP-user и DKCP-point. Список команд, выполняемых по каждому протоколу, определяется протоколом, однако многие команды могут повторяться в различных спецификациях, но при этом могут отличаться количество дополнительных параметров, выполняющие скрипты и другие параметры команд. Назначение протокола, область применения Дополнения протокола DKCP-User к спецификации ExDK Общая информация Персонификация и безопасность Формат запросов Формат ответов Назначение протокола, область примененияПрограммное обеспечение "Delta Key Classic", "Система Мониторинга и Статистики", а также Web-кабинет нашей платежной системы реализованы на основе протокола DKCP-User. Функциональные возможности указанного программного обеспечения раскрывают возможности протокола: любая операция, доступная зарегистрированному пользователю платежной системы, может быть реализована сторонним разработчиком при условии использования протокола DKCP-User. С использованием протокола сторонние разработчики получают возможность включения любых сервисов системы в свои продукты в качестве встроенных финансовых модулей, интегрировать сервисы системы в Web-приложения, писать альтернативное ПО для работы пользователей с платежной системой. Таким образом протокол позволяет реализовать работу со следующими сервисами системы:
Сервисы системы, не включенные в данный список, также могут быть реализованы на основе протокола DKCP-User. Дополнения протокола DKCP-User к спецификации ExDKСпецификация DKCP-User определяет следующие дополнения стандарта ExDK: 1. Добавлен обязательный параметр, добавляемый при отправке запроса Агентом на Сервер. Данный параметр имеет наименование program , а в качестве значения передается код программы, из которой выполняется запрос.
Код выдается при регистрации программы. Зарегистрировать программу может пользователь, дополнительно зарегистрированный в качестве разработчика. 2. В целях авторизации к SSL-соединению добавляется сертификат пользователя, высылаемый Агенту на почтовый адрес при регистрации в системе в качестве пользователя. Общая информацияСтандарт ExDK определяет взаимодействие Агентов с платежной системой Дельта Кей путем передачи запросов на командный сервер. Стандарт предусматривает передачу данных от Агента методами POST или GET и получение результирующей XML в определенном данным стандартом формате. Инициализация взаимодействия всегда исходит от Агента. Персонификация и безопасностьОбмен данными происходит по закрытому SSL-соединению с использованием сертификата Агента, выданного Агенту Сервером в момент регистрации. Логин и пароль Агента передаются с каждой командой. При этом пароль передается не в открытом виде, а захешированным по алгоритму md5. Хешируемая строка представляет собой конкатенацию самого пароля, а также номера внешней транзакции (транзакции, передаваемой пользователем, не путать с транзакцией, присваиваемой системой). Таким образом, при уникальности внешней транзакции обеспечивается защита пароля от перехвата, так как обратной операции дехеширования не существует, а строка хеша является уникальной для каждой операции пользователя. Следует отметить, что уникальность внешней транзакции для финансовых операций является строго обязательной; при попытке произвести финансовую операцию с применением использованного ранее номера будет выдана ошибка 7012 - Некорректный номер внешней транзакции. (Коды всех ошибок см. в приложениях). Для того, чтобы иметь возможность выполнять команды к серверу (например, для программного обращения из скриптов на языке PHP с использованием расширения CURL), необходимо иметь файл ключа и файл сертификата, которые могут быть получены из файла .pfx или .p12, присылаемого пользователю на почту при регистрации в системе. Для конвертации можно воспользоваться утилитой openssl из одноименного пакета: $ openssl pkcs12 -in 112233.p12 -out 112233.cer -clcerts Таким образом, получен файл .cer, который используется при запросе: <?php curl_setopt($ch, CURLOPT_SSLKEY, $wmKey); curl_setopt($ch, CURLOPT_SSLKEYPASSWD , $wmPass); curl_setopt($ch, CURLOPT_SSLCERT, $wmCert); ?> Формат запросовОбмен данными происходит при помощи протокола HTTPS. Сервер предоставляет клиенту исполняемый сценарий, доступный для клиента через сеть Интернет. Клиент запрашивает сценарий HTTPS методом GET или POST с передачей текста команды и ее параметров в виде строки запроса. Формат команды представлен следующим образом: https://<server_name>/<script_name>?cmd=<cmd>&ext_transact=<ext_transact> &login=<login>&password=<password>&program=<program> [&<param_name1>=<param_value1>]...[&<param_nameN>=<param_valueN>] где:
К примеру, смена логина может быть выполнена следующей командой: https://deltakey.net/dkcp/security.py?cmd=change_login&ext_transact=1254&login=ms&password=867c4bc5f2010a95f9971b91ddaa8f47
&program=1250&new_login=test Здесь новым логином текущего пользователя становится .При необходимости в качестве значений параметров передать строку, содержащую кроме латинских букв и цифр буквы национальных кодировок и специальные символы, используется кодирование строки, применяемое в протоколе HTTP (входные данные в конце URL кодируются в спецификации CGI. Чтобы специальные символы интерпретировались обычным образом, используются их шестнадцатиричные коды, см. спецификацию протокола HTTP). Спецификация протокола может определять и другие обязательные параметры. Дополнительные параметры определяются посылаемой командой. Формат ответовВ качестве ответов возвращается XML вида: <?xml version="1.0" encoding="UTF-8"?> <response> <transact>...<transact> <ext_transact>...</ext_transact> <date>...</date> <status>...</status> <status_text>...</status_text> <result>...<result> <result_text>...</result_text> <advanced> [<param1>...</param1> ... <paramN>...</paramN>] </advanced> <table [name="table1"] row="..." col="..."> [<colnames> <colname1>ruscolname1</colname1> ... <colnameN>ruscolnameN</colnameN> </colnames> <colvalues> <colname1>colvalue1</colname1> ... <colnameN>colvalueN</colnameN> </colvalues> ... <colvalues> <colname1>colvalue1</colname1> ... <colnameN>colvalueN</colnameN> </colvalues>] </table> ... <table [name="tableN"] row="..." col="..."> [<colnames> <colname1>ruscolname1</colname1> ... <colnameN>ruscolnameN</colnameN> </colnames> <colvalues> <colname1>colvalue1</colname1> ... <colnameN>colvalueN</colnameN> </colvalues> ... <colvalues> <colname1>colvalue1</colname1> ... <colnameN>colvalueN</colnameN> </colvalues>] </table> </response> Описание элементов:
Для корректной расшифровки ответов необходим Internet Explorer не ниже версии 6. Примеры реализации см. в разделе Описание стандарта ExDK Вернуться назад |
Партнерам
|
© 2005-2013. «Delta Key» Все права защищены. |
Правовые нормы | Раскрытие информации | Контактная информация | Дизайн — Алексей Попов © 2023 |