Для идентификации площадки-партнера используются auth_token и секретный ключ. auth_token передаётся с каждым сообщением в виде GET-параметра. Секретный ключ используется для подписи сообщений. Все запросы которые идут к API подписываются. Подпись - это md5 хэш взятый из строки полученная из сообщения с добавлением секретного ключа.

Для того чтобы сформировать строку из этого сообщения нужно:

  1. Нужно отсортировать все ключи по алфавиту
  2. Склеить ключи и значения в строку по следующему принципу keyA=valueA;keyB=1
  3. Если в сообщении содержится вложенный объект, то его нужно также превратить в строку и полученный результат использовать в качестве значения для ключа.
  4. Если в сообщении содержится массив, то для каждый объект из массива нужно также превратить в строку. Полученные строки склеить через точку с запятой в том порядке в каком они идут в массиве.

Пример:

Допустим, секретный ключ ZvCq2iiqpEs4TJrjLBt и сообщение выглядит следующим образом:

{
  "keyB": 1,
  "keyA": "valueA",
  "keyC": {"keyCA": "valueCA", "keyCB": 12},
  "keyD": [{"keyDB1": 13, "keyDA1": "valueDA1"}, {"keyDA2": 14, "keyDB2": "valueDB2"}]
}

Строка полученная из этого сообщения будет выглядеть так:

keyA=valueA;keyB=1;keyC=keyCA=valueCA;keyCB=12;keyD=keyDA1=valueDA1;keyDB1=13;keyDA2=14;keyDB2=valueDB2;

Теперь добавляем к этой строке секретный ключ

keyA=valueA;keyB=1;keyC=keyCA=valueCA;keyCB=12;keyD=keyDA1=valueDA1;keyDB1=13;keyDA2=14;keyDB2=valueDB2;ZvCq2iiqpEs4TJrjLBt

и вычисляем md5 хэш от этой строки

89baeff5c9fa45979e8977a9d247e8a9

Полученное значение и есть подпись к сообщению. Подпись передаётся к каждым сообщением в виде GET-параметра.

Также каждое сообщение содержит auth_token для идентификации поставщика услуг в качестве GET-параметра. При вычислении подписи auth_token не учитывается.