API взаимодействия с системами партнеров
Материал из SolverMate Руководство
Доступ к API функциям системы осуществляется при помощи POST запросов. В качестве протокола для функций регистрации нового решения используется стандартный HTTPS, функций вызова системы оплаты и получения от неё уведомлений - HTTP.
Содержание |
Регистрация нового решения для клиента и домена
Описание
/api/partner/createNewInstance – создаёт новое решение на заданный логин и пароль, а также домен и почтовый ящик, если они заданы в параметрах запроса.
Обязательные параметры:
- partnerKey - ключ авторизации партнера;
- login - логин (вида admin@domain);
- password - пароль;
- fullName - Фамилия Имя пользователя;
- phoneNumber - телефон;
- clientId - идентификатор клиента у партнёра;
Необязательные параметры:
- domain - домен;
- isOpened - закрытая/открытая регистрация в домене;
- createMailbox - опция создать и подключить ящик из логина (да/нет).
Функция возвращает JSON объект, содержащий код решения, если создание прошло успешно, и код ошибки в противном случае.
Примеры ответа сервера:
{“result”:”SUCCESS”, instanceId:”12345”}
{“result”:”ERROR”, errorCd:”LOGIN_OCCUPIED”, errorDesc:”Пользователь с именем test@domain уже зарегистрирован в системе”}
Коды ошибок
- NO_PARTNER - партнёр не зарегистрирован в системе;
- LOGIN_OCCUPIED - пользователь с таким именем уже существует;
- DOMAIN_OCCUPIED - домен с таким именем уже зарегистрирован;
- MAILBOX_CREATION_NOT_AVAILABLE - создание ящика в данном домене невозможно;
- SERVICE_UNAVAILABLE - сервис недоступен;
- DOMAIN_NOT_CREATED - сбой сервиса создания домена;
- MAILBOX_NOT_CREATED - сбой сервиса создания почтового ящика.
Пример вызова функции на PHP
$data = array('partnerKey' => 'test123456', 'login' => 'user1@testdomain.com', 'password' => 'strongPassword', 'fullName' => 'Alexander Makedonskiy', 'phoneNumber' => '+2233222232', 'clientId' => '1', 'domain' => 'testdomain.com', 'isOpened' => 'true', 'createMailbox ' => 'true'); $curl = curl_init("https://my.solvermate.ru/api/partner/createNewInstance"); curl_setopt ($curl, CURLOPT_HEADER, 0); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, $data); curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0); $response = curl_exec ($curl); curl_close ($curl); echo $response;
Перевод домена клиента
/api/partner/createDomain – создаёт новый домен для существующего решения Параметры обязательные:
- partnerKey - ключ авторизации партнера;
- instanceID - код решения;
- domain - домен;
- isOpened - закрытая/открытая регистрация в домене.
Функция возвращает JSON объект, содержащий сообщение об успехе ({“result”:”SUCCESS”}), если создание домена прошло успешно, и код ошибки в противном случае.
Коды ошибок
- NO_PARTNER - партнёр не зарегистрирован в системе;
- DOMAIN_OCCUPIED - домен с таким именем уже зарегистрирован;
- NO_INSTANCE - указанный instanceID не найден.
Создание почтовых ящиков в домене
/api/partner/createMailbox – создаёт новый почтовый ящик для указанных домена и решения (домен должен содержаться в указанном решении) Параметры обязательные:
- partnerKey - ключ авторизации партнера;
- instanceID - код решения;
- domain - имя домена, в котором создаётся ящик
- mailboxName - адрес почтового ящика (вида admin@domain);
- password - пароль.
Функция возвращает JSON объект, содержащий сообщение об успехе или ошибке.
Коды ошибок
- NO_PARTNER - партнёр не зарегистрирован в системе;
- NO_DOMAIN - домен с таким именем не зарегистрирован;
- NO_INSTANCE - указанный instanceID не найден;
- MAILBOX_OCCUPIED - указанный mailbox уже существует.
Функции взаимодействия с магазином/платежным инструментом партнера
В случае, если у партнёра существует интеграция с платёжной системой, все операции по пополнению платёжного баланса в системе SolverMate осуществляются через платёжную систему партнёра при посредстве API партнёра. Для идентификации партнёра применяется дайджест построенный на алгоритме MD5 c использованием секретного ключа авторизации партнёра.
Вызов системы оплаты
Для перенаправления пользователя на страницу платёжной системы необходимо либо предоставление функции API партнёра, перенаправляющей запрос от системы SolverMate на страницу платёжной системы с добавлением необходимых параметров, либо вызов платёжной системы может быть осуществлён напрямую из системы SolverMate. И в том, и в другом случае партнёр предоставляет ссылку, по которой с помощью GET запроса по HTTP протоколу может быть вызвана система оплаты. В посылаемый запрос необходимо иметь возможность добавления параметра instanceId для идентификации плательщика в системе SolverMate (имя параметра может быть изменено для соответствия спецификации платёжной системы). На стороне партнёра необходимо обеспечить пересылку уведомлений об оплате на соответствующий адрес API системы SolverMate.
Пример исходящего запроса к платёжной системе:
https://bestpaymentsystem.com/payment.jsp?contractId=12345&instanceId=123&otherParams=no
Отправка уведомления об оплате
/api/payment - по этому адресу отправляем уведомление от платёжной системы о проведении транзакции.
Обязательные параметры:
- transactionType - тип транзакции (CHARGE или REFUND);
- referenceNumber - идентификатор платёжной транзакции;
- contractId - код партнёра;
- quantity - количество;
- instanceId - идентификатор решения в SolverMate;
- authKey - ключ авторизации.
Здесь параметр authKey используется для авторизации запроса и вычисляется следующим образом :
Md5 (referenceNumber + contractId + DataProtectionKey).
Где DataProtectionKey - ключ авторизации партнёра.
Функция в случае успешной обработки возвращает ответ в виде Md5(OK+DataProtectionKey). Если ответ системы отличается от приведённого выше, должна быть обеспечена повторная отправка платёжного уведомления.