Бесплатная библиотека и клиент Postcalc Light
PostcalcLight - это библиотека для работы с Postcalc.RU и простой веб-интерфейс в одном архиве.
PostcalcLight объявляется public domain, то есть вы можете использовать его в своих проектах полностью или частично без ограничений.
Опробовать PostcalcLight в работе онлайн
Посмотреть статистику работы PostcalcLight
Скачать документацию
Документация онлайн
Библиотека легковесная, в сжатом виде - менее 30 Кб в архиве, основная функция опроса - около 60 строк кода.
Начиная с версии 2.0 (декабрь 2015 г.) база данных скачивается отдельно. Она предоставляется в двух форматах
на выбор: простых текстовых файлов (аналогично версии 1.x) и дампа MySQL.
Внимание! С 2021 года для интеграции с собственными проектами рекомендуется использовать не таблицы PostcalcLight, а таблицы, которые находятся в
зоне загрузки для разработчиков. Они содержат дополнительные поля (в частности, географические координаты и адрес ОПС), а
Эталонный справочник ОПС является официальной базой данных Почты России, которая обновляется два раза в месяц и гарантирует актуальность почтовых индексов.
ЗАГРУЗКА
Для кодировки UTF-8:
http://www.postcalc.ru/download/PostcalcLight_UTF8.zip - актуальная версия программы.
http://www.postcalc.ru/download/PostcalcLight_UTF8_TXT.zip - актуальная версия базы данных в формате TXT.
Для кодировки Windows-1251:
http://www.postcalc.ru/download/PostcalcLight_cp1251.zip - актуальная версия программы.
http://www.postcalc.ru/download/PostcalcLight_cp1251_TXT.zip - актуальная версия базы данных в формате TXT.
Для любой кодировки:
http://www.postcalc.ru/download/PostcalcLight_SQL.zip - актуальная версия базы данных в формате дампа MySQL.
При желании вы можете настроить скрипты на вашем сайте для обновления в автоматическом режиме.
Базы данных основаны на "Эталонном справочнике" Почты России:
https://www.pochta.ru/support/database/ops
Исходные базы "Эталонных справочников" Почты России обновляются 2 раза в месяц. Базы Postcalc.RU
синхронизируются с этими
обновлениями в автоматическом режиме.
БАЗА ДАННЫХ
Какой формат выбрать (SQL или TXT) - дело больше вкуса.
Текстовые файлы не требуют дополнительной настройки и доступа к базе данных, работают сразу "из коробки".
База MySQL дает возможность интеграции с другими вашими проектами.
Вы можете просмотреть список используемых названий населенных пунктов, стран и почтовых индексов онлайн:
1.
Файлы в формате текста, разделенного табуляцией, и соответствующие индексные файлы:
postcalc_light_cities.txt
postcalc_light_cities.idx
postcalc_light_post_indexes.txt
postcalc_light_post_indexes.idx
postcalc_light_countries.txt
Хотя файлы имеют вид обычного текста, изменять их нельзя, так как это приведет к нарушению функционирования.
Для настройки пишем в конфигурационном файле postcalc_light_config.php:
'source' => 'txt',
'txt_dir' => __DIR__,
Если файлы баз данных находятся в том же каталоге, что и файл postcalc_light_lib.php, то параметр txt_dir можно оставить как есть,
то есть __DIR__. Иначе укажите полный маршрут к ним.
2.
Дамп базы данных MySQL postcalc_light.sql. Его необходимо импортировать в текущую базу данных через phpmyadmin или войти в каталог
PostcalcLight и выполнить из командной строки:
mysql -uпользователь -pпароль база_данных < postcalc_light.sql
Для настройки пишем в конфигурационном файле postcalc_light_config.php:
'source' => 'mysql',
'mysql_host' => 'localhost', // Для mysql: имя хоста
'mysql_user' => 'testuser', // Для mysql: имя пользователя БД
'mysql_pass' => 'testpass', // Для mysql: пароль пользователя БД
'mysql_db' => 'postcalc', // Для mysql: имя базы данных
ОСНОВНЫЕ ВОЗМОЖНОСТИ
- Можно скачать два варианта базы данных: в формате простого текста, разделенного табуляцией, и формате дампа MySQL.
По умолчанию программа настроена на базу в формате текста и работает "из коробки", без дополнительных настроек.
Базы данных сгенерированы на основе Эталонного справочника Почты России и обновляются в автоматическом режиме.
- Проверка аргументов на правильность.
Отправитель и получатель проверяются по прилагаемым базам данных в формате простых текстовых файлов: postcalc_light_post_indexes.txt и postcalc_light_locations.txt.
Страна проверяется по файлу postcalc_light_сountries.txt.
- Правильное перекодирование аргументов.
- Опрос в цикле доступных серверов проекта Postcalc.RU - если один сервер недоступен, запрашивается следующий.
- Разархивирование ответа и перевод его в массив PHP.
- Кэширование правильного ответа.
- Настройка всех необходимых параметров в конфигурационном файле.
- Для дизайна была использована тема Start из стандартной библиотеки jQuery UI.
При желании ее можно заменить на любую другую из 24 тем библиотеки.
- Автодополнение индекса отделения связи и местоположения для полей "Откуда" и "Куда".
- Javascript необязателен - он используется только в автодополнении и некоторых элементах дизайна.
- Ведение журнала успешных и неуспешных соединений. Скрипт postcalc_light_stat.php позволяет просматривать статистику по месяцам и дням,
скрипт postcalc_light_view_log.php - журналы (они разбиты по месяцам).
Если число ошибок превышает 10, на контактный email отсылается извещение (параметр error_log_send).
ИСПОЛЬЗОВАНИЕ
1. Разархивируйте PostcalcLight_UTF8.zip или PostcalcLight_cp1251.zip в каталог веб-сервера.
2. Настройте базу данных.
Если вы предпочитаете работать с базой в формате текстовых файлов, разархивируйте содержимое
PostcalcLight_UTF8_TXT.zip или PostcalcLight_cp1251_TXT.zip в тот же каталог.
Если вы выбрали работу с сервером MySQL, скачайте и разархивируйте PostcalcLight_SQL.zip.
Затем воспользуйтесь для импорта дампа программой phpmyadmin или войдите в каталог PostcalcLight и
выполните из командной строки:
mysql -uпользователь -pпароль база_данных < postcalc_light.sql
Далее укажите имя сервера, название базы данных, логин и пароль в конфигурационном файле postcalc_light_config.php.
3. Для проверки откройте в веб-браузере страницу /PostcalcLight/postcalc_light_test.php - она обратится к серверу Postcalc.RU,
используя библиотеку PostcalcLight, и, если все в порядке, нарисует таблицу.
4. Откройте в веб-браузере страницу /PostcalcLight/postcalc_light.php - это простой клиент для работы с Postcalc.RU.
5. Окончательно настройте клиент в рабочем режиме: откройте файл postcalc_light_config.php и
правильно заполните значение следующих переменных:
- default_from - Почтовое отделение отправителя по умолчанию.
- key - Ключ доступа. Его следует получить в Личном Кабинете. С тестовым ключом test можно сделать не более 50 запросов в сутки с одного адреса IP.
Также вы можете изменить значение других переменных запроса - их описание имеется в файле postcalc_light_config.php.
6. Следите за работой библиотеки через /PostcalcLight/postcalc_light_stat.php.
ИЗМЕНЕНИЯ
ВЕРСИЯ 2.0 - 25 декабря 2015.
1. Добавлены конфигурационные параметры city_as_pindex и dir_txt. Эти переменные обязательно должны присутствовать в конфигурационном файле!
2. Изменен формат баз данных - теперь это стандартный Tabbed Separated Values, который можно импортировать в БД SQL.
Для баз данных postcalc_light_post_indexes.txt и postcalc_light_cities.txt генерируются индексные файлы с тем же именем и расширением .idx.
Не удаляйте их и не вносите изменения в эти файлы - это приведет к сбою.
3. Удалена база данных postcalc_light_locations.txt. Поддержка названий регионов типа 'Ленинградская область' пока сохраняется на уровне API,
однако в будущем может быть также прекращена. В планируемом API 2.0 будут стандартно поддерживаться либо 6-значные индексы, либо названия
населенных пунктов из postcalc_light_cities.txt.
ВЕРСИЯ 2.1 - 26 января 2016.
1. Откорректирован принцип, по которому формируются названия населенных пунктов из трех частей: 3-я часть теперь строго следует
официальному справочнику ОКТМО.
2. Исправлены небольшие ошибки в коде.
ВЕРСИЯ 2.2 - 28 июня 2016.
Изменения в дизайне клиента. Библиотека не изменилась.
1. Добавлен конфигурационный параметр debug. Если 1 - под таблицей с тарифами выводится полный массив ответа сервера.
Переменная [_server][REMOTE_ADDR] содержит реальный IP, с которого ушел запрос клиента.
2. Добавлен конфигурационный параметр arrColumns. Можно включать/отключать вывод следующих колонок таблицы:
Количество, Доставка, Ценность, Срок доставки.
3. Добавлены кофигурационные параметры skin и arrSkins. Параметр skin - выбор одной из 24 доступных тем оформления
из стандартной библиотеки jQuery UI. Доступные темы можно посмотреть по ссылке:
http://jqueryui.com/themeroller/
4. Добавлен конфигурационный параметр arrParcels - список всех возможных отправлений.
Чтобы ненужные виды отправлений не выводились в итоговой таблице, просто закомментируйте их в arrParcels.
5. Если доставка в конечный пункт имеет сезонные ограничения, выводится таблица с информацией по ограничениям.
ВЕРСИЯ 2.3 - 26 апреля 2017 г.
Если установлена библиотека PHP curl, то обращение к серверам проекта делается через нее, иначе - через функцию
file_get_contents. Функция file_get_contents из-за особенностей архитектуры делает вместо одного обращения
к серверу два, что увеличивает время обслуживания по логам сервера в 2 раза, а реально - примерно в 1.5 раза.
Никаких изменений в пользовательский код вносить не требуется.
ВЕРСИЯ 2.4 - 16 ноября 2017 г.
1. В таблицу postcalc_light_post_indexes добавлен условный почтовый индекс 000000, поле opsname которого содержит дату и номер
"Эталонного справочника почтовых индексов ОПС" Почты России, из которого была сгенерирована данная таблица.
"Эталонный справочник" находится по ссылке:
http://vinfo.russianpost.ru/database/ops.html
2. Поле city в таблице postcalc_light_cities теперь формируется только из "Эталонного справочника почтовых индексов", без привлечения
иных источников. Таким образом, произошел возврат к формату поля city, который был до версии 2.1 (январь 2016 года). В целом настоятельно
рекомендуется использовать настройку по умолчанию city_as_pindex = 1.
ВЕРСИЯ 2.4.1 - 25 декабря 2019 г.
Добавлен конфигурационный параметр key (ключ запроса). Ключ необходимо получить бесплатно в Личном кабинете:
https://www.postcalc.ru/lk/
ВЕРСИЯ 2.5 - 14 марта 2020 года.
1. Добавлен конфигурационный параметр co (корпоративные клиенты). В данный момент влияет на расчеты Посылки и EMS Оптимальное.
2. Добавлен 6-й опциональный параметр функции postcalc_request() - $Box (размер коробки). Принимает значения s,m,l,xl,ng (негабарит).
ВЕРСИЯ 2.6 - 30 марта 2020 года.
1. Добавлен конфигурационный параметр p (список кодов отправлений через запятую). Например, p=bv,pv,p1,em,is,ib,ip,iem -
запросить расчеты по ценной бандероли, ценной посылке, ценной посылке 1-го класса, EMS; межд. мелкий пакет, бандероль, посылка, ЕMS с товарами.
2. Добавлен конфигурационный параметр sv (опции и дополнительные услуги).
3. Добавлен конфигурационный параметр pa: если 0, то неделимое отправление, если 1, то товар можно отправить в нескольких посылках.
ВЕРСИЯ 2.7 - 31 марта 2020 года.
В интерфейс клиентской части добавлена панель "Дополнительные настройки" для задания переменных p (список отправлений), sv (список услуг), bo (размер коробки Почты России).