不要在USPS运输中获得Priority Mail Express的价格

时间:2015-02-25 06:41:12

标签: shipping usps fedex

我需要获得标准邮件,优先邮件以及优先快递邮件的费率。使用下面的代码我得到优先邮件和标准邮件的价格,但不是优先快递邮件。

在服务栏中,我写优先快递邮件,然后出现如下错误(优先邮件快递)

“请求的邮件服务不适用于指定的请求属性。”

我正在使用的代码是:

{

$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;

}

1 个答案:

答案 0 :(得分:0)

Priority Mail Express不适用于所有类型的货件,在这种情况下可能会受到限制。鉴于您的请求适用于其他邮件类,这很可能是一个运输,而不是技术问题。如果您可以共享您要发送的特定参数,将会有所帮助。

如果您想玩USPS运费,可以通过https://goshippo.com的简易用户界面或API免费检索运费。