【问题标题】:TNT Express Connect Pricing module Using PHP使用 PHP 的 TNT Express Connect 定价模块
【发布时间】:2014-09-05 06:07:48
【问题描述】:

我需要连接到 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;
?>

但是这段代码给了我一个无法识别登录详细信息

的错误

【问题讨论】:

    标签: php xml


    【解决方案1】:

    检查代码::将&lt;ORIGINCOUNTRY&gt;AUD更改为AU

                 <PRICECHECK> 
                       <RATEID>rate1</RATEID> 
                       <ORIGINCOUNTRY>AU</ORIGINCOUNTRY> 
                       <ORIGINTOWNNAME>Atherstone</ORIGINTOWNNAME> 
                       <ORIGINPOSTCODE>CV9 2RY</ORIGINPOSTCODE> 
                       <ORIGINTOWNGROUP/> 
                       <DESTCOUNTRY>ES</DESTCOUNTRY> 
                       <DESTTOWNNAME>Alicante</DESTTOWNNAME> 
                       <DESTPOSTCODE>03006</DESTPOSTCODE> 
                       <DESTTOWNGROUP/> 
                       <CONTYPE>N</CONTYPE> 
                       <CURRENCY>AUD</CURRENCY> 
                       <WEIGHT>0.2</WEIGHT> 
                       <VOLUME>0.1</VOLUME> 
                       <ACCOUNT/> 
                       <ITEMS>1</ITEMS> 
                 </PRICECHECK> 
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-02
        • 2018-04-06
        • 2021-09-26
        • 2016-01-14
        • 1970-01-01
        相关资源
        最近更新 更多