2010-11-03 189 views
0

在我的网站(基于PHP)我想实现DHL的费率计算器。我想添加3个字段 - 1.Origin,2.Destination和3.Weight。这3个值将被发送到DHL服务器,作为回报,我希望有速度。我怎样才能做到这一点?DHL税率计算

在另一节中,我将添加更多字段(地址,产品hts代码等)与这3个以获得速率。它怎么能做呢?

+0

你可以访问任何DHL API? – 2010-11-03 07:46:28

+0

不,我没有访问权限。我如何获得访问权限? – 2010-11-04 03:06:55

+0

我建议你注册访问他们的XML API: http://www.dhl-usa.com/xml/index.asp – 2010-11-03 07:47:59

回答

5

以下是DHL费率计算器代码:您需要使用您的DHL网站ID和密码更改siteid和密码。

<?php 
$data = '<?xml version="1.0" encoding="UTF-8"?> 
<p:DCTRequest xmlns:p="http://www.dhl.com" xmlns:p1="http://www.dhl.com/datatypes" xmlns:p2="http://www.dhl.com/DCTRequestdatatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dhl.com DCT-req.xsd "> 
    <GetQuote> 
    <Request> 
     <ServiceHeader> 
     <MessageTime>'.date('c').'</MessageTime> 
     <MessageReference>123456789</MessageReference> 
     <SiteID>YOUR_DHL_SITE_ID</SiteID> 
     <Password>YOUR_DHL_PASSWORD</Password> 
     </ServiceHeader> 
    </Request> 
    <From> 
     <CountryCode>GB</CountryCode> 
     <Postalcode>WC1A</Postalcode> 
    </From> 
    <BkgDetails> 
     <PaymentCountryCode>US</PaymentCountryCode> 
     <Date>2011-06-06</Date> 
     <ReadyTime>PT10H21M</ReadyTime> 
      <ReadyTimeGMTOffset>+01:00</ReadyTimeGMTOffset> 
      <DimensionUnit>CM</DimensionUnit> 

      <WeightUnit>KG</WeightUnit> 
      <Pieces><Piece> 
       <PieceID>1</PieceID> 
       <Height>20</Height> 
       <Depth>20</Depth> 
       <Width>20</Width> 
       <Weight>19</Weight> 
      </Piece></Pieces> 
      <IsDutiable>N</IsDutiable> 
      <NetworkTypeCode>AL</NetworkTypeCode> 
     </BkgDetails> 
     <To> 
      <CountryCode>US</CountryCode> 
      <Postalcode>10101</Postalcode> 
     </To>  
    </GetQuote> 
</p:DCTRequest>'; 
$tuCurl = curl_init(); 
curl_setopt($tuCurl, CURLOPT_URL, "https://xmlpitest-ea.dhl.com/XMLShippingServlet"); 
curl_setopt($tuCurl, CURLOPT_PORT , 443); 
curl_setopt($tuCurl, CURLOPT_VERBOSE, 0); 
curl_setopt($tuCurl, CURLOPT_HEADER, 0); 
curl_setopt($tuCurl, CURLOPT_POST, 1); 
curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($tuCurl, CURLOPT_POSTFIELDS, $data); 
curl_setopt($tuCurl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml","SOAPAction: \"/soap/action/query\"", "Content-length: ".strlen($data))); 

$tuData = curl_exec($tuCurl); 

curl_close($tuCurl); 
$xml = simplexml_load_string($tuData); 
print "<pre>"; 
print_r($xml); 
?> 

更多参考请点击以下链接:

http://xmlpitest-ea.dhl.com/serviceval/jsps/main/Main_menu.jsp

+0

我该怎么做 Y? – socca1157 2016-03-07 19:30:54