我需要连接到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;
?>
但是此代码错误地指出无法识别登录详细信息
答案 0 :(得分:1)
检查代码::将Map<Class<?>, Thing<[class from key]>>
值<ORIGINCOUNTRY>
更改为AUD
AU
答案 1 :(得分:-1)
我知道我在这个问题上有点迟了,但我花了这么多时间深入研究这个问题,此时我可能已经找到了答案。虽然我可能错了,但我认为他们无法识别您的登录详细信息。我知道这可能听起来很疯狂,但是如果我们仔细研究他们的反应并在这里和那里应用一点逻辑,那么这可能是问题所在。希望这将有助于您和来自谷歌的其他人,寻找TNT API的问题。祝你今天愉快。