Не получить цену Priority Mail Express при доставке USPS

Мне нужно было получить тариф для стандартной почты, приоритетной почты, а также приоритетной экспресс-почты. Используя приведенный ниже код, я получаю тарифы для приоритетной почты и стандартной почты, но не для приоритетной экспресс-почты.

Когда в столбце службы я пишу приоритетную экспресс-почту, возникает ошибка, как указано ниже (приоритетная экспресс-почта)

«Запрошенная почтовая служба недоступна для указанных атрибутов запроса».

Код, который я использую, таков:

{

$url = "http://Production.ShippingAPIs.com/ShippingAPI.dll";
        $ch = curl_init();
        // set the target url
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        // parameters to post
        curl_setopt($ch, CURLOPT_POST, 1);
        $data = "API=RateV4&XML=<RateV4Request USERID=\"$userName\"><Package ID=\"1ST\"><Service>All</Service><ZipOrigination>$orig_zip</ZipOrigination><ZipDestination>$dest_zip</ZipDestination><Pounds>$weight</Pounds><Ounces>0</Ounces><Container/><Size>REGULAR</Size><Machinable>FALSE</Machinable></Package>
        </RateV4Request>";

        // send the POST values to USPS
        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
        $result=curl_exec ($ch);
        $data = strstr($result, '<?');
         //echo '<!-- '. $data. ' -->'; // Uncomment to show XML in comments
        $xml_parser = xml_parser_create();
        xml_parse_into_struct($xml_parser, $data, $vals, $index);
        xml_parser_free($xml_parser);
        $params = array();
        $level = array();
        foreach ($vals as $xml_elem) {
        if ($xml_elem['type'] == 'open') {
        if (array_key_exists('attributes',$xml_elem)) {
        list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
        } else {
        $level[$xml_elem['level']] = $xml_elem['tag'];
        }
        }
        if ($xml_elem['type'] == 'complete') {
        $start_level = 1;
        $php_stmt = '$params';
        while($start_level < $xml_elem['level']) {
        $php_stmt .= '[$level['.$start_level.']]';
        $start_level++;
        }
        $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
        eval($php_stmt);
        }
        }
        curl_close($ch);
        //print_r($data);exit;
        echo '<pre>'; print_r($params); echo'</pre>'; // Uncomment to see the full array
        //echo $params['RATEV4RESPONSE']['1ST'][$servicecode]['RATE'];exit;

}


person Diksha    schedule 25.02.2015    source источник


Ответы (1)


Priority Mail Express доступен не для всех типов отправлений, и в этом случае он может быть ограничен. Учитывая, что ваш запрос работает для других почтовых классов, высока вероятность того, что это проблема доставки, а не техническая проблема. Было бы полезно, если бы вы могли поделиться конкретными параметрами, которые вы отправляете.

Если вы хотите поиграть со тарифами на доставку USPS, вы можете бесплатно получить тарифы на доставку с помощью простого пользовательского интерфейса или API на https://goshippo.com. .

person Simon Kreuz    schedule 25.02.2015
comment
Спасибо за ответ, имя пользователя 282CYBER5970. - person Diksha; 26.02.2015
comment
Почтовый индекс отправления: 20505, почтовый индекс назначения: 01010, вес: 12 фунтов - person Diksha; 26.02.2015
comment
Каковы размеры и вес упаковки? Кроме того, почему вы устанавливаете для MACHINABLE значение false? Большинство упаковок и конвертов поддаются механической обработке. - person Simon Kreuz; 27.02.2015
comment
хорошо, я сделаю machinable true, и я не вводил размеры упаковки, нужно ли также указывать размеры? - person Diksha; 27.02.2015
comment
размеры упаковки не требуются, но вес. - person Simon Kreuz; 27.02.2015
comment
вес будет 12 фунтов в качестве примера - person Diksha; 02.03.2015
comment
так как он будет варьироваться в зависимости от заказа. - person Diksha; 02.03.2015
comment
Можете ли вы зарегистрировать фактический запрос и ответ API и опубликовать его здесь? Извините, но сложно отлаживать только код выше. - person Simon Kreuz; 03.03.2015
comment
Параметры запроса‹code›API=RateV4&XML=‹RateV4Request USERID='737STOUG2610'›‹Package ID=\1ST\›‹Service›All‹/Service›‹ZipOrigination›20505‹/ZipOrigination›‹ZipDestination›67402‹/ZipDestination›‹ Фунты›70‹/Фунты›‹Унции›0‹/Унции›‹Контейнер›Переменный‹/Контейнер›‹Размер›РЕГУЛЯРНЫЙ‹/Размер›‹Обрабатываемый›ИСТИНА‹/Обрабатываемый›‹/Упаковка›‹/RateV4Request›‹/код › - person Diksha; 04.03.2015
comment
Спасибо за поддержку, сэр. Я понял проблему. Проблема заключалась в почтовом индексе его происхождения. Может быть служба экспресс-почты недоступна с этим почтовым индексом (20505). Теперь он работает нормально. Благодарю вас :) - person Diksha; 04.03.2015