TNT Express Connect定价模块使用PHP

时间:2014-09-05 06:07:49

标签: php xml

我需要连接到TNT Expressconnect并获取我使用PHP的给定重量和产品数量的定价详情,并尝试连接PHP Post XML Request to server ( TNT Express Connect Pricing module)

中的这些代码行
<?php
/**
 *  Submit XML to the TNT
 *  server via a Stream instead
 *  of cURL. 
 *
 *  @Returns String (XML)
**/

error_reporting(E_ALL);
ini_set('display_errors', 1);

function sendToTNTServer( $Xml ) {

$postdata = http_build_query(
                   array(
                     //For Future reference
                     //the xml_in= ( the = ) is appended
                     //Automatically by PHP
                    'xml_in' => $Xml 
                   )
        );

$opts = array('http' =>
            array(
               'method'  => 'POST',
               'header'  => 'Content-type: application/x-www-form-urlencoded',
               'content' => $postdata
             )
         );

$context  = stream_context_create( $opts );
$output = file_get_contents( 
       'https://express.tnt.com/expressconnect/pricing/getprice', 
       false, 
       $context 
     );

     return $output;
}

$XmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
              <PRICEREQUEST> 
                   <LOGIN> 
                       <COMPANY>CITXXXXXX</COMPANY> 
                       <PASSWORD>XXXXX</PASSWORD> 
                       <APPID>PC</APPID> 
                   </LOGIN> 
                   <PRICECHECK> 
                       <RATEID>rate1</RATEID> 
                       <ORIGINCOUNTRY>AUD</ORIGINCOUNTRY> 
                       <ORIGINTOWNNAME>Atherstone</ORIGINTOWNNAME> 
                       <ORIGINPOSTCODE>CV9 2RY</ORIGINPOSTCODE> 
                       <ORIGINTOWNGROUP/> 
                       <DESTCOUNTRY>ES</DESTCOUNTRY> 
                       <DESTTOWNNAME>Alicante</DESTTOWNNAME> 
                       <DESTPOSTCODE>03006</DESTPOSTCODE> 
                       <DESTTOWNGROUP/> 
                       <CONTYPE>N</CONTYPE> 
                       <CURRENCY>GBP</CURRENCY> 
                       <WEIGHT>0.2</WEIGHT> 
                       <VOLUME>0.1</VOLUME> 
                       <ACCOUNT/> 
                       <ITEMS>1</ITEMS> 
                 </PRICECHECK> 
            </PRICEREQUEST>";

$returnXml = sendToTNTServer( $XmlString );
    echo $returnXml;
?>

但是此代码错误地指出无法识别登录详细信息

2 个答案:

答案 0 :(得分:1)

检查代码::将Map<Class<?>, Thing<[class from key]>><ORIGINCOUNTRY>更改为AUD

AU

答案 1 :(得分:-1)

我知道我在这个问题上有点迟了,但我花了这么多时间深入研究这个问题,此时我可能已经找到了答案。虽然我可能错了,但我认为他们无法识别您的登录详细信息。我知道这可能听起来很疯狂,但是如果我们仔细研究他们的反应并在这里和那里应用一点逻辑,那么这可能是问题所在。希望这将有助于您和来自谷歌的其他人,寻找TNT API的问题。祝你今天愉快。