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). Если ответ системы отличается от приведённого выше, должна быть обеспечена повторная отправка платёжного уведомления.

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты