Как сформировать сигнатуру (md5-подпись) для запроса к API поиска отелей?

Как сформировать сигнатуру (md5-подпись) для запроса к API поиска отелей?

Допустим, наш запрос имеет вид:

http://engine.hotellook.com/api/v2/search/start.json?iata=HKT&checkIn=2020-06-10&checkOut=2020-06-13&adultsCount=2&customerIP=192.168.1.1&childrenCount=1&lang=ru&currency=USD&timeout=20&waitForResult=0 

Значит, у нас имеются следующие параметры запроса:

  • iata=HKT;
  • checkIn=2020-06-10;
  • checkOut=2020-06-13;
  • adultsCount=2;
  • customerIP=192.168.1.1;
  • childrenCount=1;
  • lang=ru;
  • currency=USD;
  • timeout=20;
  • waitForResult=0.

Отсортируем их по алфавиту:

  • adultsCount=2;
  • checkIn=2020-01-10;
  • checkOut=2020-01-13;
  • childrenCount=1;
  • currency=USD;
  • customerIP=192.168.1.1;
  • iata=HKT;
  • lang=ru;
  • timeout=20;
  • waitForResult=0.

Теперь запишем значения отсортированных параметров через двоеточие и добавим перед ними API токен и партнёрский маркер.

API токен и маркер находятся в личном кабинете на странице инструментов программы Hotellook.

В итоге получится следующая комбинация:

ВашТокен:ВашМаркер:2:2020-01-10:2020-01-13:1:USD:192.168.1.1:HKT:ru:20:0

Данная строка используется для создания сигнатуры. В результате получим: 441d54e270cf64e574909459dbc17d10.
Внимание! Сигнатура чувствительна к регистру.

Теперь, чтобы создать запрос, необходимо взять параметры запроса, добавить к ним партнёрский маркер, сигнатуру и записать через & в строку поиска:

http://engine.hotellook.com/api/v2/search/start.json?iata=HKT&checkIn=2020-06-10&checkOut=2020-06-13&adultsCount=2&customerIP=192.168.1.1&childrenCount=1&lang=ru&currency=USD&timeout=20&waitForResult=0&marker=16886&signature= 441d54e270cf64e574909459dbc17d10