Integration instruction

  1. Зарегистрируйтесь в Личном кабинете. При регистрации примите Условия и Правила обработки личных данных.
  2. Сгенерируйте ключ для домена. Для этого необходимо поставить ссылку на postcalc.ru на одной из страниц вашего сайта, доступных из Интернета. Ключ на домен 2-го уровня (mydomain.ru) будет действителен и для всех поддоменов (www.mydomain.ru, shop.mydomain.ru и т.п.).
  3. Вставьте ключ в скрипт, который посылает запросы от вашего сайта. Если вы пользуетесь библиотекой Postcalc Light, укажите ключ в файле postcalc_light_config.php. Настоятельно рекомендуется изучить пример кода на языке PHP.
  4. В качестве сервера укажите не рабочий api.postcalc.ru, а резервный test.postcalc.ru. Сделайте несколько запросов и убедитесь, что получаете корректный ответ.
    Типичные ошибки:
    • Нет распаковки сжатого потока - происходит сбой при попытке перевести полученный поток в массив (функции unserialize, json_decode, wddx_deserialize). Добавьте строчку
      if ( substr($Response,0,3) == "\x1f\x8b\x08" ) $Response=gzinflate(substr($Response,10,-8));
      Подробнее см. тему Декомпрессия ответа в описании API.
    • Названия населенных пунктов в строке запроса имеют пробелы. Поскольку пробелы в строке запроса недопустимы, сервер на любом запросе вида t=Нижний Новгород выдает ошибку. Замените пробелы на знак подчеркивания, например: t=Нижний_Новгород.
    • В запросе передаются названия произвольных населенных пунктов, иногда даже не из России, типа всяких сел и т.п.. Реально можно передавать только следующий список.
    • Неправильная кодировка для отдачи в формате PHP. В этом случае может возникать пустой массив. Правильно задайте переменную cs=windows-1251 или cs=utf-8.
    • В запросе пропускается указание пункта назначения, переменная t - пустая строка. Либо - заведомо неправильный почтовый индекс, например, из 3 цифр. Это вообще повальная проблема. Решение: проверяйте переменную t перед запросом, желательно по базе PostcalcLight, где все допустимые варианты переменной t собраны в два простых текстовых файла postcalc_light_locations.txt и postcalc_light_post_indexes.txt.
    • Запрос зацикливается, как следствие - тысячи одинаковых запросов. Проверяйте цикл опроса, а также используйте кэширование.
  5. После тестирования меняем test.postcalc.ru на api.postcalc.ru. Отслеживаем работу скрипта в Личном кабинете: в разделе "Статистика" отражается статистика запросов в реальном времени, в разделе "Журнал сервера" - запросы с ключом. Если журнал пуст, значит, ключ установлен неправильно. Можно также просмотреть запросы по адресу IP.