Создание приложения
- Регистрация нового приложения
- Добавление платформы приложения
- Добавлении версии приложения
- Расчет контрольной суммы
Регистрация нового приложения
Для начала работы надо авторизоваться в приложение API TPU (https://api.tpu.ru)
-
Перейти на сайт API TPU (https://api.tpu.ru)
-
Нажать на кнопку вход (см. рисунок) следуя инструкциям авторизации ввести свой корпоративный логин и пароль.
3. После авторизации в боковом меню выбрать раздел "Все приложения"
В списке будут отображаться приложения, где вы являетесь разработчиком. Если кто-то вас добавит к своему приложению - оно отобразиться у вас в боковом меню.
4. В правом верхнем углу нажмите кнопку "Добавить" и заполните все поля, при необходимости можете сразу указать публичный SSL ключ вашего приложения
5. После добавления вашего приложения отправьте заявку на почту support@tpu.ru для подтверждения вашего приложения.
Добавление платформы приложения
После добавления вашего приложения, требуется добавить платформы и получить API Key для работы с методами API.
Для этого в меню выберите следующие пункты "Настройки" -> "Платформы".
В появившимся окне необходимо выбрать тип платформы приложения и заполнить все поля. Нажать "Сохранить".
Идентификатор платформы должен содержать только латинские буквы. Обычно это алиас системы или доменное имя сайта, записанное в обратном порядке
Добавлении версии приложения
Следующий шаг - это добавление версии приложения, для того чтобы получить API Key и Private Key для работы с методами https://api.tpu.ru
Выберите пункт "Версии" напротив интересующей вас платформы приложения.
Каждая платформа приложения может иметь несколько разных версий
В модальном окне заполните номер версии приложения, описание и статус.
Только версия приложения в статусе "Опубликовано" будет работать в API TPU
После добавления версии приложения вы получите два ключа публичный и приватный. Вы их будете использовать при работе с методами API TPU.
Расчет контрольной суммы
Для некоторых методов требуется указать дополнительный параметр безопасности sig. В интерфейсе вы сможете проверить алгоритм расчета этого параметра на сервере. Разработчику приложения нужно реализовать свой собственный метод для получения данного параметра.
Пример на языке PHP
public function sig(array $arguments, $secret)
{
ksort($arguments);
$string = '';
foreach ($arguments as $key => $value) {
$string .= "$key=$value";
}
return md5($string . $secret);
}
Пример на языке Java
import java.security.MessageDigest;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.security.NoSuchAlgorithmException;
public String sig(Map<String, String> arguments, String secret) throws NoSuchAlgorithmException {
StringBuilder builder = new StringBuilder();
List<String> keys = arguments.keySet().stream().sorted().collect(Collectors.toList());
for(String key : keys) {
builder.append(key).append("=").append(arguments.get(key));
}
builder.append(secret);
byte[] digest = MessageDigest.getInstance("MD5").digest(builder.toString().getBytes());
StringBuilder resultBuilder = new StringBuilder();
for(byte b : digest) {
resultBuilder.append(String.format("%02x", b));
}
return resultBuilder.toString();
}
Пример на языке Scala
import java.security.MessageDigest
import scala.collection.immutable.ListMap
def sig(arguments: Map[String, String], secret: String): String = {
MessageDigest.getInstance("MD5").digest {
s"${ListMap(arguments.toSeq.sortBy({ case (key, value) => key }):_*).map({ case (key, value) => s"$key=$value" }).mkString}$secret".getBytes
}.map(byte => String.format("%02x", byte)).mkString
}
Пример на языке Python
import collections
import hashlib
def sig(arguments, secret):
ordered = collections.OrderedDict(sorted(arguments.items()))
concated = "".join(list(map(lambda k,v: k + "=" + v, ordered.keys(), ordered.values()))) + secret
return hashlib.md5(concated.encode()).hexdigest()