—крыть меню * ¬ерси€ дл€ печати

API почтового калькул€тора Postcalc.RU версии 1.1


¬нимание!
ƒл€ тестов ¬аших скриптов насто€тельно прошу использовать тестовый сервер test.postcalc.ru.
¬ы можете видеть ¬аши запросы в реальном времени, как они доход€т до сервера и что происходит. ƒл€ этого воспользуйтесь формой по адресу:
http://test.postcalc.ru/mystat.php

“естовый сервер test.postcalc.ru полностью синхронизирован с рабочим сервером api.postcalc.ru, результаты расчетов совершенно одинаковые.
¬нимание!
— 25 декабр€ 2015 года сервер переходит на версию 1.1: в запросах по API поддерживаютс€ названи€ населенных пунктов из "Ёталонного справочника ѕочты –оссии", а названи€ регионов –оссии в запросах ("Ћенинградска€ область", "Ќенецкий автономный округ" и т.п.) объ€вл€ютс€ устарелыми. ќни будут поддерживатьс€ дл€ совместимости в течение 2016 года, однако затем их поддержка не гарантируетс€.

¬ы можете скачать последнюю версию базы населенных пунктов (postcalc_light_cities), стран (postcalc_light_countires) и почтовых индексов (postcalc_light_post_indexes) в следующих форматах:
http://www.postcalc.ru/download/PostcalcLight_UTF8_TXT.zip - формат TXT, кодировка UTF8, около 640  б.
http://www.postcalc.ru/download/PostcalcLight_cp1251_TXT.zip - формат TXT, кодировка cp1251, около 570  б.
http://www.postcalc.ru/download/PostcalcLight_SQL.zip - формат дампа MySQL, от кодировки не зависит, около 670  б.

“акже вы можете просмотреть список используемых названий населенных пунктов, стран и почтовых индексов онлайн:
¬нимание!
¬ разработке насто€тельно рекомендуетс€ использовать - полностью или частично - библиотеку PostcalcLight. ќна имеет все необходимые средства дл€ предварительной проверки аргументов на правильность, а также реализует кэширование и опрос всех доступных серверов по цепочке.
ƒекомпресси€ в API 1.0+.

ќтвет сервера Postcalc.RU всегда архивируетс€ в gzip (за исключением экспериментального формата plain). ƒл€ декомпрессии добавьте строчку:
$Request = 'http://api.postcalc.ru/?'.$QueryString;
$Response = file_get_contents($Request) or die('Can not connect!');
// ƒобавл€ем распаковку:
if ( substr($Response,0,3) == "\x1f\x8b\x08" ) $Response=gzinflate(substr($Response,10,-8));
¬нимание! Ќа платформе Ѕитрикс обнаружилось следующее нестандартное поведение: функци€ gzinflate не блокируетс€, однако после распаковки поток усекаетс€ на несколько байт (?).
ƒл€ обхода проводите распаковку так:
$Response=gzinflate(substr($Response,10,-1));
≈сли это не поможет, замените полностью вызов file_get_contents() с последующей декомпрессией функцией gzinflate() на аналогичный вызов fopen() с применением обработчиков компрессии:
$Request = 'http://api.postcalc.ru/?'.$QueryString;
$fp = fopen("compress.zlib://$Request", "rb");
$Response = stream_get_contents($fp);
fclose($fp);

¬нимание! ƒл€ разархивации на платформе 1C можно применить вызов из командной строки внешней программы:
ѕараметрыGET = "?st=mysite.ru&ml=my@mysite.ru&Person=Ivan_Ivanov&f=101000&c=RU&o=wddx" +
"&w=" + ‘ормат(¬ес,"„√=0") +
"&v=" + ‘ормат(ќкр(÷енность),"„√=0") +
"&t=" + »ндекс;


»м€‘айлајрхива =  аталог¬ременных‘айлов() + "postcalc_new.zip";
’“ћЋ = Ќовый HTTP—оединение("api.postcalc.ru");
’“ћЋ.ѕолучить(ѕараметрыGET,»м€‘айлајрхива);
—трока оманды = """C:\Program Files\WinRar\winrar.exe"" e -y """ +  »м€‘айлајрхива + """ """ +   аталог¬ременных‘айлов() + """";
Ўелл=Ќовый COMќбъект("Wscript.Shell");
Ўелл.run(—трока оманды,1,True);
»м€‘айлаќтвета =   аталог¬ременных‘айлов() + "postcalc_new";
ј это полное решение другого программиста: 1c_postcalc_request.txt
ќчень признателен авторам, которые поделились своими решени€ми дл€ платформы 1—!

ќтличи€ в обработке ошибок
ѕеред запросом ваш скрипт должен провер€ть параметры на формальную правильность, прежде всего - вес отправлени€ и получател€. —крипты, которые регул€рно выдают более 50% ошибок, будут однозначно отключатьс€. ƒл€ тестировани€ прошу активнее использовать test.postcalc.ru - там формальна€ правильность не провер€етс€.
“акже насто€тельно рекомендую изучить библиотеку PostcalcLight. ќна имеет все необходимые средства дл€ предварительной проверки аргументов на правильность.
¬нимание!
¬ запросе к api.postcalc.ru об€зательно должны быть следующие пол€:

st ('Site')- домен сайта, на котором работает скрипт (обратите внимание - только домен, без http://, слешей и www),
ml ('Email') - почтовый адрес человека, ответственного за работу скрипта (программист или системный администратор),

например:
st=shop.mysite.ru&ml=programmer@test.ru

Ѕез этих переменных суточный лимит обращений уменьшаетс€ с 500 до 50 запросов в сутки!

я гарантирую доверительное обращение с информацией, содержащейс€ в данных переменных. ќна будет использоватьс€ исключительно дл€ извещени€ лиц, ответственных за скрипт, о проблемах с их скриптом.
ƒополнительное необ€зательное поле запроса:

sw ('Software') - произвольна€ строка латиницей, котора€ идентифицирует ваш плагин, подчеркивание, номер версии (например, MyBestPlugin_1.01);
¬ перспективе € планирую создать "кабинет разработчика" - если вы зарегистрируетесь в нем, то получите доступ к логам сервера Postcalc.RU и статистику обращений дл€ вашей разработки.
¬нимание!
Ќа сайте, который использует обращение к API Postcalc.RU, должна быть размещена ссылка на проект в произвольной форме, например:

—айт использует в расчетах www.postcalc.ru

или:
Ќаш магазин использует технологию http://www.postcalc.ru

ѕодробнее здесь.

1. «апрос

¬ы можете щелкнуть по ссылкам и посмотреть ответ сервера в читабельном виде.

ѕример запроса:
http://api.postcalc.ru/?f=101000&c=RU&t=190000&w=1000&v=1000&s=0&d=15.05.2014

Ётот же запрос с опущенными параметрами по умолчанию (оценка - 0 рублей, страна - –осси€, расчет на насто€щий момент):
http://api.postcalc.ru/?f=101000&t=190000&w=1000

Ёто то же самое, что и следующий запрос (отделение 101000 €вл€етс€ ќѕ— по умолчанию дл€ ћосквы, а 190000 - дл€ —анкт-ѕетербурга):
http://api.postcalc.ru/?f=ћосква&t=—анкт-ѕетербург&w=1000

”важаемыe коллеги!
ќбратите внимание, что в строке запроса любые символы, не €вл€ющиес€ латиницей, необходимо преобразовывать в "процентную" кодировку. Ѕраузер делает эту работу за вас, а в скрипте нужно €вно вызывать функцию rawurlencode().
ѕри этом пробелы в запросе абсолютно недопустимы - дл€ сервера такой запрос €вл€етс€ ошибочным и вы получите ответ 400 Bad Request .
≈сли вы используете в запросе названи€ местоположений, об€зательно преобразуйте их функцией rawurlencode.

Ќеправильный запрос:
$Request='http://test.postcalc.ru/?f=ћосква&t=—ергиев ѕосад&w=1000&v=1000&o=php';

ѕравильный запрос:
$Request='http://test.postcalc.ru/?f='.rawurlencode('ћосква').'&t='.rawurlencode('—ергиев ѕосад').'&w=1000&v=1000&o=php';

ќписание полей запроса
ћнемоника
(упрощает запоминание)
ѕеременна€ ѕо умолчанию ќписание
Site st нет
ƒомен сайта, на котором работает ваш скрипт.
ќб€зательное поле дл€ api.postcalc.ru и коммерческих версий API.
Email ml нет
 онтактна€ электронна€ почта лица, ответственного за работу скрипта (программист или системный администратор).
ќб€зательное поле дл€ api.postcalc.ru и коммерческих версий API.
From f нет

2 варианта (распознаютс€ автоматически).

1. Ќазвание населенного пункта отправител€, как это определено в списке населенных пунктов.  одировка - cp1251 или utf8, распознаетс€ автоматически, регистр букв значени€ не имеет, однако должны присутствовать все пробелы, скобки и дефисы. »ндекс предпри€ти€ св€зи беретс€ по умолчанию - это отделение св€зи с наименьшим номером. 

2. 6-значный индекс отправител€.

To t нет

2 варианта (распознаютс€ автоматически).

1. Ќазвание населенного пункта адресата, как это определено в списке населенных пунктов.  одировка - cp1251 или utf8, распознаетс€ автоматически, регистр букв значени€ не имеет, однако должны присутствовать все пробелы, скобки и дефисы. »ндекс предпри€ти€ св€зи беретс€ по умолчанию - это отделение св€зи с наименьшим номером. 

2. 6-значный индекс адресата.

Weight w нет ¬ес отправлени€ в граммах. Ќе более 100 кг.
Valuation v 0 ќценка товарного вложени€ в рубл€х. Ќе более 100 тыс. рублей. 
Date d now ƒата, на которую нужно рассчитать отправку, в любом формате, который распознаетс€ функцией PHP strtotime(). ¬ частности, распознаютс€ такие варианты: 30.01.2011, 30-01-2011, 2011-01-30, now, +10days. ѕо умолчанию - текущий момент времени (now).
Step s 0 ≈сли 0, выводитс€ подробный расчет дл€ данного отправлени€, с учетом веса и оценки. ≈сли равно 100, 500 или 1000, выдаетс€ таблица тарифов дл€ отправлений разного веса с шагом 100, 500 или 1000 граммов соответственно. “аблица содержит 20 строк. ѕараметр экспериментальный, поддержка может изменитьс€ в любой момент.
Country c RU ƒвузначный код страны (дл€ международных доставок) из списка.
Output o html

‘ормат выдачи данных. ѕоддерживаютс€ следующие форматы: php, json, wddx, html, arr, plain. –егистр букв значени€ не имеет.
1. HTML. —траница html в читабельном виде, кодировка определ€етс€ переменной cs, удобно дл€ просмотра ответа сервера пр€мо из браузера. ѕо умолчанию - UTF-8.
2. PHP. ћассив PHP, обработанный функцией serialize().  одировка определ€етс€ переменной cs. ”добно дл€ использовани€ напр€мую в скриптах PHP, дл€ чего на стороне клиента следует использовать функцию unserialize() - см. пример в конце страницы. ѕо умолчанию - UTF-8.
3. ARR. ћассив PHP, выведенный функцией var_export().  одировка определ€етс€ переменной cs, удобно дл€ контрол€ ответов сервера из браузера. ѕо умолчанию - UTF-8.
4. WDDX (разновидность xml) - массив PHP, обработанный функцией wddx_serialize_value().  одировка UTF-8.
5. JSON - массив PHP, обработанный функцией json_encode().  одировка UTF-8 + JavaScript Object Notation (JSON). ”добно дл€ использовани€ в JavaScript.
ƒл€ выдачи в формате JSONP просто добавьте в запрос переменную callback=[Ќазвание_функции_обратного_вызова].
6. PLAIN - простой текст; это единственный вариант ответа, который не сжимаетс€ gzip.  ажда€ строчка имеет 3 пол€, разделенных пробелом: код отправлени€, доставка, срок доставки. ‘ормат экспериментальный, может изменитьс€ в любой момент.

- callback нет Ќазвание функции обратного вызова JavaScript, примен€етс€ в сочетании с форматом o=json. ≈сли сервер обнаруживает такую переменную, то возвращает ответ в формате JSONP с заголовком content-type: application/javascript. ¬ названии функции допускаютс€: латиница в любом регистре, цифры, знак подчеркивани€.
Extended e 0 ƒетализаци€ ответа. ѕри e=0 выдаютс€ основные данные (тариф, страховка, оценка, наложенный платеж, сроки доставки, адреса и телефоны отделений св€зи), при других значени€х могут выдаватьс€ некоторые недокументированные сведени€. ѕри разработке собственных модулей, обращающихс€ к API PostCalc.RU, насто€тельно рекомендуетс€ ограничиватьс€ только основными данными, так как расширенные данные могут мен€тьс€ без уведомлени€.
IBase ib f Ѕаза дл€ расчета страховки (только при оценке товарного вложени€ больше 0!).

≈сли IBase=p или Partial, то страхуетс€ только товарное вложение. Ќапример, посылка с оценкой 1000 рублей будет застрахована на 1000 * 4% = 40 рублей независимо от стоимости доставки.
¬ случае пропажи отправлени€ почта возместит только стоимость товара, а расходы на доставку и страховку придетс€ списать в убыток.
 роме того, при отправке наложенным платежом возникает проблема расчета суммы, которую адресат должен выплатить при получении отправлени€: ведь эта сумма больше оценки товара и должна покрывать расходы интернет-магазина на доставку и страховку

≈сли IBase=f или Full, базой страховки будет ќценка “овара + “ариф + —траховка, и в случае пропажи отправлени€ почта полностью возместит ущерб. Ёто самый оптимальный вариант дл€ отправки наложенным платежом, а конечна€ сумма, которую должен заплатить адресат - это столбец "÷енность" на веб-странице или поле ќценкаѕолна€ в ответе по API.
÷енность вычисл€етс€ по формуле: ÷енность = “ариф + ќценка вложени€ + —траховка
–азмер страхового сбора вычисл€етс€ по формуле: —траховка = ( “ариф + ќценка ) * —тавка—бора / (1 - —тавка—бора)
ProcessingFee pr 0 ѕользовательска€ наценка за обработку заказа в рубл€х. —юда можно также включить уведомление о вручении.
PackingFee pk 0 ѕользовательска€ наценка за упаковку одного отправлени€ в рубл€х.
Round r 0.01 ќкругление ÷енности в верхнюю сторону до [Round] рублей. –екомендуетс€ задать Round=1 или 10, чтобы не путатьс€ с копейками.
¬се остальные данные расчета (“ариф, —траховка, ƒоставка) всегда вывод€тс€ с копейками.
VAT vt 1 ≈сли 1, Ќƒ— включен в тариф, если 0 - Ќƒ— вычитаетс€ из тарифа.
¬нимание! —ледует различать вычитание Ќƒ— дл€ целей бухгалтерского учета (возможно дл€ всех отправлений) и отправку по более низким тарифам без Ќƒ— (невозможно дл€ посылок и EMS). ѕодробнее см. вопрос  акие почтовые отправлени€ можно посылать по тарифам без Ќƒ—?
Charset cs UTF-8  одировка дл€ выходных форматов php, arr, html. —оответствует списку, который выводит функци€ php mb_list_encodings(). ¬ частности, дл€ русского €зыка доступны UTF-8, Windows-1251, KOI8-R, CP866, ISO-8859-5.
ѕо умолчанию - UTF-8.
¬нимание! Ќе рекомендуетс€ использовать иные кодировки, кроме UTF-8 и Windows-1251.
¬нимание! ƒл€ форматов json и wddx кодировка - всегда UTF-8! (ограничение функций php)

 

2. ќтвет

ќтвет - иерархический массив в одном из 5 форматов (см. описание ключа Output в запросе). ќбратите внимание, что большинство ключей написано кириллицей - это, на мой взгл€д, значительно упрощает работу русско€зычных программистов. 

ј. ќбщие ключи - дл€ всех видов отправлений.

 люч «начение
Status ≈сли ошибки нет, возвращает OK, иначе - код ошибки
API ¬ерси€ сервера. "—тара€" верси€ 2010-начала 2014 года обозначаетс€ как 0.9, поддерживает как "старое", так и "новое" API. ¬ерси€ 2014 года обозначаетс€ как 1.0, поддерживает только новое јPI.
Message —ообщение об ошибке.  люч устанавливаетс€, только если возникла ошибка (Status!='OK').
_request

Ёхо-массив переменных запроса, полученных сервером от клиента. ћожет быть полезно при отладке.

_server

ћассив следующих переменных сервера: SERVER_ADDR, REMOTE_ADDR, HTTP_HOST, HTTP_USER_AGENT, HTTP_ACCEPT_ENCODING. ћожет быть полезно при отладке.

ƒата ƒата расчета тарифа в формате ƒƒ.ћћ.√√√√
ƒата—верки“арифов ƒата сверки тарифов с сайтами ѕочты –оссии и EMS
¬ес ¬ес отправлени€ в граммах, использовавшийс€ при расчетах.
ќценка ќценка вложени€ в рубл€х, использовавша€с€ при расчетах.
—рокƒоставки Ќормативный срок доставки в сутках. ƒл€ международных отправлений устанавливаетс€ только дл€ EMS.
ћеждународное ѕункт международного обмена почтой - ћќ— ¬ј или —јЌ “-ѕ≈“≈–Ѕ”–√.  люч устанавливаетс€ только дл€ доставки за рубеж.

 лючи ќткуда и  уда - устанавливаютс€ дл€ всех отправлений; дл€ международных отправлений значени€  уда следует игнорировать. 

 люч1  люч2 «начение
ќткуда
=или=
 уда
»ндекс 6-значный индекс предпри€ти€ св€зи.
Ќазвание Ќазвание отделени€ св€зи, например, ћќ— ¬ј-523.
јдрес  јдрес отделени€ св€зи.
“елефон “елефоны отделени€ св€зи.
ћестоположениеEMS Ќазвание центра региона или субъекта федерации (см. список ћестоположений EMS).
÷ентр–егиона Ќазвание центра региона.

 люч ќграничени€ устанавливаетс€ только дл€ внутренних отправлений и только если дл€ данного почтового индекса имеютс€ ограничени€ по доставке. 

 люч1  люч2  люч3 «начение
ќграничени€ ќткуда
=или=
 уда
“ип Ѕуквенное обозначение типа ограничени€, используетс€ во внутренних процедурах PostCalc.RU. ¬арианты: 
1. «апрет - установлен только период(ы) полного запрета доставки, в остальное врем€ доставка наземна€.
2. јвиа¬есь√од-јвиа - авиадоставка от центра региона круглый год, установлен период(ы), когда возможна только авиадоставка.
3. јвиа¬есь√од-Ќаземный - комбинированна€ доставка от центра региона круглый год; установлен период(ы), когда возможна только комбинированна€ доставка. 
4. јвиа—езонно - установлен период, когда возможна только авиадоставка, в остальное врем€ доставки нет вообще.
5. «апрет* - особа€ ситуаци€, св€занна€ с ошибкой в Ёталонном справочнике ограничений: установлены периоды запрета доставки, однако имеетс€ сноска, что доставка авиа разрешена. ƒл€ этих ќѕ— точный расчет тарифа в периоды закрыти€ дл€ наземной доставки невозможен (в основном якути€).
ƒействует ƒействует ли ограничение на момент расчета. ≈сли действует, принимает значение '«јѕ–≈“' или 'ј¬»ј'.
јвиаƒоставка ѕериод доставки только авиатранспортом в формате ƒƒ.ћћ-ƒƒ.ћћ;ƒƒ.ћћ-ƒƒ.ћћ...
«апретƒоставки ѕериод полного запрета доставки в формате ƒƒ.ћћ-ƒƒ.ћћ;ƒƒ.ћћ-ƒƒ.ћћ...

 люч ћагистраль - устанавливаетс€ только дл€ внутренних отправлений, и только если имеетс€ доставка по магистрали (между центрами регионов). 

 люч1  люч2 «начение
ћагистраль ќписание ќписание маршрута, например, ћќ— ¬ј=>—јЌ “-ѕ≈“≈–Ѕ”–√
–ассто€ние  “арифицируемое рассто€ние между городами магистрали в км по железной дороге. ƒл€ регионов, куда железнодорожной доставки нет - примерное рассто€ние.
ƒоставка—тандарт  Ќормативный срок доставки посылки наземным (водным) транспортом в сутках, не счита€ дн€ подачи отправлени€.
ƒоставкајвиа Ќормативный срок доставки письменной корреспонденции, он же установлен и дл€ доставки посылок авиатранспортом. 
ƒоставка ласс1 Ќормативный срок доставки 1-м классом.

 

Ѕ.  лючи и значени€ дл€ внутренних отправлений (Country=RU или параметр в запросе опущен):

 люч ќписание
ѕроста€Ѕандероль ѕроста€ бандероль
«аказна€Ѕандероль

«аказна€ бандероль

«аказна€Ѕандероль1 ласс «аказна€ бандероль 1 класс
÷енна€Ѕандероль ÷енна€ бандероль
÷енна€ѕосылка ÷енна€ посылка
÷енна€Ѕандероль1 ласс ÷енна€ бандероль 1 класс
EMS  урьерска€ доставка EMS
ѕосылкаќнлайн ”слуга "ѕосылка ќнлайн" дл€ корпоративных клиентов
 урьерќнлайн ”слуга " урьер ќнлайн" дл€ корпоративных клиентов
ѕростоеѕисьмо ѕростое письмо
«аказноеѕисьмо «аказное письмо
÷енноеѕисьмо ÷енное письмо
ѕростойћультиконверт ѕростой мультиконверт
«аказнойћультиконверт «аказной мультиконверт

¬нимание! ѕростое, заказное и ценное письма рассчитываютс€ дл€ веса не более 100 г, простой и заказной мультиконверт - дл€ веса не более 150 г, простое, заказное и ценное письмо 1-го класса - дл€ веса не более 500 г.

¬нимание! — 20 €нвар€ 2017 года исключены расчеты авиапосылок и авиабандеролей, так как ѕочта –оссии более их не рассчитывает. ¬место них примен€етс€ наценка 50% на посылки и бандероли, если отделение св€зи отправител€ и/или получател€ закрыто дл€ наземной доставки (посто€нно или временно).

 лючи и значени€ дл€ внутренних отправлений на примере ценной бандероли:

¬ерхний уровень  люч1  люч2 «начение
$arrReply["ќтправлени€"]   ["÷енна€Ѕандероль"]   ["Ќазвание"] Ќазвание почтового отправлени€
[" оличество"] „исло почтовых отправлений с учетом максимального разрешенного веса.
["“ариф"] ѕочтовый тариф в рубл€х (без учета страховки).
["—траховка"] “олько дл€ ценных отправлений с оценкой больше 0: страховка в рубл€х.
["ƒоставка"] ƒл€ ценных отправлений с оценкой больше 0: тариф+страховка в рубл€х. ƒл€ остальных отправлений - то же самое, что тариф.
["ѕроверено"] ≈сли 1, расчет полностью основан на документально подтвержденных тарифах. ≈сли 0, возможны неточности. ¬ частности, при расчете ценных отправлений дл€ большинства городов используютс€ магистральные по€са не из официальных документов ѕочты –оссии, а вычисленные на основе рассто€ний по железной дороге, то же относитс€ к авиатарифам и т.п. ќбычно неточность невелика и находитс€ в пределах нескольких рублей на килограмм веса.
ѕростые и заказные бандероли, а также EMS, всегда имеют в этом поле 1.
["ќценкаѕолна€"] “олько дл€ ценных отправлений: сумма оценки в рубл€х, которую необходимо дать почтовому отправлению, чтобы получить на расчетный счет сумму, равную оценке товарного вложени€. –авна: ќценка товарного вложени€ + “ариф + —траховка.
["Ќаложенныйѕлатеж"] “олько дл€ ценных отправлений: сумма в рубл€х, которую платит адресат на почте при наложенном платеже.
["Ќаложенныйѕлатеж2"] “олько дл€ ценных отправлений в “омской и »ркутской област€х,  расно€рском крае, якутии: наложенный платеж в районах, приравненных к  райнему —еверу. ¬ остальных регионах равно 0.
["Ќаложенныйѕлатеж3"] “олько дл€ ценных отправлений в  расно€рском крае: наложенный платеж в районах  райнего —евера. ¬ остальных регионах равно 0.
["Ќет–асчета"]

 люч устанавливаетс€, если тариф дл€ данного отправлени€ не может быть достоверно рассчитан. —одержит описание причины. —ледующие варианты:
1. јвиабандероль и авиапосылка, если в базе данных нет магистрального авиатарифа (тарифа на перелет между центрами регионов).
2. ѕроста€ и заказна€ бандероль по маршруту, который включает отрезки с авиадоставкой (возможен только расчет ценных отправлений).
3. ќтделение отправител€ или получател€ временно закрыто.
4. ќшибка в Ёталонном справочнике ограничений по доставке.

["¬ычетЌƒ—"]

‘лаг. ≈сли 1, вычет Ќƒ— возможен. ≈сли 0 - Ќƒ— вычитатьс€ не будет, даже если в запросе vt=0.

["÷енное"]

‘лаг. ≈сли 1 - допускает оценку и, соответственно, расчет страховки и наложенного платежа. ≈сли 0 - оценка отправлени€ невозможна.

["“оварное"]

‘лаг. ≈сли 0 - таким отправлением можно посылать только книжно-журнальную продукцию и документы. ≈сли 1 - возможно товарное вложение.

[" лассƒоставки"]

 ласс доставки. ≈сли 0 - наземна€ доставка, если 1 - премиум (авиа и 1-й класс), если 2 - курьерска€.

 

¬.  лючи и значени€ дл€ международных отправлений:

 люч ќписание
ћждћешокћ ћеждународный мешок ћ
ћждћешокћјвиа

ћеждународный мешок ћ авиа

ћждћешокћ«аказной ћеждународный мешок ћ заказной
ћждћешокћјвиа«аказной ћеждународный мешок ћ авиа заказной
ћждЅандероль ћеждународна€ бандероль
ћждЅандерольјвиа ћеждународна€ авиабандероль
ћждЅандероль«аказна€ ћеждународна€ бандероль заказна€
ћждЅандерольјвиа«аказна€ ћеждународна€ авиабандероль заказна€
ћждћелкийѕакет ћеждународный мелкий пакет
ћждћелкийѕакетјвиа ћеждународный мелкий пакет авиа
ћждћелкийѕакет«аказной ћеждународный мелкий пакет заказной
ћждћелкийѕакетјвиа«аказной ћеждународный мелкий пакет авиа заказной
EMS_ћждƒокументы ≈MS международное - документы
EMS_ћжд“овары ≈MS международное - товары

 лючи и значени€ дл€ международных отправлений на примере международного отправлени€ EMS с товарным вложением:

 люч1  люч2 «начение
≈MS международное - товары
 
Ќазвание Ќазвание почтового отправлени€
 оличество „исло почтовых отправлений с учетом максимального разрешенного веса.
“ариф ѕочтовый тариф в рубл€х (без учета страховки).
—траховка “олько дл€ ценных отправлений с оценкой больше 0: страховка в рубл€х.
ƒоставка ƒл€ ценных отправлений с оценкой больше 0: тариф+страховка в рубл€х. ƒл€ остальных отправлений - то же самое, что тариф.
ќценкаѕолна€ “олько дл€ ценных отправлений: сумма оценки в рубл€х, которую необходимо дать почтовому отправлению, чтобы получить на расчетный счет сумму, равную оценке товарного вложени€. –авна: ќценка товарного вложени€ + “ариф + —траховка.
¬ычетЌƒ—

‘лаг. ≈сли 1, вычет Ќƒ— возможен. ≈сли 0 - Ќƒ— вычитатьс€ не будет, даже если в запросе vt=0.

÷енное

‘лаг. ≈сли 1 - допускает оценку и, соответственно, расчет страховки. ≈сли 0 - оценка отправлени€ невозможна.

“оварное

‘лаг. ≈сли 0 - таким отправлением можно посылать только книжно-журнальную продукцию и документы. ≈сли 1 - возможно товарное вложение.

 лассƒоставки

 ласс доставки. ≈сли 0 - наземна€ доставка, если 1 - премиум (авиа), если 2 - курьерска€.

3. ѕолный пример запроса на PHP к Postcalc.RU:

ѕолный текст примера можно скачать здесь . Ќасто€тельно рекомендуетс€ использовать библиотеку PostcalcLight.
<?php
 
// === »сходные данные
$From='101000';
$To='190000';
$Weight=1000;
$Valuation=500;
$Country='RU';
$Site='shop.mysite.ru';
$Email='admin@mysite.ru';
// ==========
header('Content-Type: text/html; charset=utf-8');
 
// ‘ормируем запрос со всеми необходимыми переменными
$QueryString  = 'f=' .rawurlencode($From);
$QueryString .= '&t=' .rawurlencode($To);
$QueryString .= "&w=$Weight&v=$Valuation&c=RU&o=php&cs=utf-8";
$QueryString .= "&st=$Site&ml=$Email";
 
// ‘ормируем URL запроса.
$Request="http://api.postcalc.ru/?$QueryString";
 
// ‘ормируем опции запроса. Ёто необ€зательно, однако упрощает контроль и отладку
$arrOptions = array('http' =>
array( 'header'  => 'Accept-Encoding: gzip','timeout' => 5, 'user_agent' => phpversion() )
);
 
// —оедин€емс€ с сервером
if ( !$Response=file_get_contents($Request, false , stream_context_create($arrOptions)) )
die('Ќе удалось соединитьс€ с api.postcalc.ru!');
 
 
// –азархивируем ответ
if ( substr($Response,0,3) == "\x1f\x8b\x08" )  $Response=gzinflate(substr($Response,10,-8));
 
// ѕереводим ответ в массив PHP
$arrResponse = unserialize($Response);
 
// ќбработка ошибки
if ( $arrResponse['Status'] != 'OK' ) die("—ервер вернул ошибку: $arrResponse[Status]!");
 
// ¬ыводим значение тарифа дл€ бандероли
echo '“ариф на бандероль: '. $arrResponse['ќтправлени€']['ѕроста€Ѕандероль']['“ариф'];
 
//  ¬ыводим в цикле все доступные тарифы 
echo "<pre>\n";
foreach  ( $arrResponse['ќтправлени€'] as $parcel )
echo "$parcel[Ќазвание]\t$parcel[ƒоставка]\n";
 
echo "</pre>\n";
 





(c) PostCalc.RU 2010-17



яндекс.ћетрика

Time elapsed: 0.00412