2014-04-10 123 views
0

我正在嘗試整合UPS php api來生成在線訂單以發送內容。 我能夠驗證地址並獲得東西轉讓的費率,但我無法找到任何解決方案來爲courir生成訂單和標籤,有人可以幫助我獲得。UPS php api - 創建訂單

回答

0

UPS開發工具包和API是所有API相關開發的很好的參考,包括在PHP中。它可以從這裏下載:https://www.ups.com/upsdeveloperkit/downloadresource?loc=en_US

下面是一些代碼示例,對於PHP船接受(從API ZIP)代碼:

<?php 

     //Configuration 
     $access = " Add License Key Here"; 
     $userid = " Add User Id Here"; 
     $passwd = " Add Password Here"; 

     $accessSchemaFile = " Add AccessRequest Schema File"; 
     $requestSchemaFile = " Add ShipAcceptRequest Schema File"; 
     $responseSchemaFile = "Add ShipAcceptResponse Schema File"; 

     $endpointurl = ' Add URL Here'; 
     $outputFileName = "XOLTResult.xml"; 


     try 
     { 
     //create AccessRequest data object 
     $das = SDO_DAS_XML::create("$accessSchemaFile"); 
     $doc = $das->createDocument(); 
     $root = $doc->getRootDataObject(); 
     $root->AccessLicenseNumber=$access; 
     $root->UserId=$userid; 
     $root->Password=$passwd; 
     $security = $das->saveString($doc); 

     //create ShipAcceptRequest data oject 
     $das = SDO_DAS_XML::create("$requestSchemaFile"); 
     $requestDO = $das->createDataObject('','RequestType'); 
     $requestDO->RequestAction='01'; 
     //$requestDO->RequestOption='01'; 

     $doc = $das->createDocument(); 
     $root = $doc->getRootDataObject(); 
     $root->Request = $requestDO; 
     $root->ShipmentDigest = 'test-Invalid-digest'; 
     $request = $das->saveString($doc); 

     //create Post request 
     $form = array 
     (
      'http' => array 
      (
       'method' => 'POST', 
       'header' => 'Content-type: application/x-www-form-urlencoded', 
       'content' => "$security$request" 
      ) 
     ); 

     //print form request 
     print_r($form); 


     $request = stream_context_create($form); 
     $browser = fopen($endpointurl , 'rb' , false , $request); 
     if(!$browser) 
     { 
      throw new Exception("Connection failed."); 
     } 

     //get response 
     $response = stream_get_contents($browser); 
     fclose($browser); 

     if($response == false) 
     { 
      throw new Exception("Bad data."); 
     } 
     else 
     { 
      //save request and response to file 
     $fw = fopen($outputFileName,'w'); 
      fwrite($fw , "Response: \n" . $response . "\n"); 
      fclose($fw); 

      //get response status 
      $resp = new SimpleXMLElement($response); 
      echo $resp->Response->ResponseStatusDescription . "\n"; 
     } 
     } 
     catch(SDOException $sdo) 
     { 
     echo $sdo; 
     } 
     catch(Exception $ex) 
     { 
     echo $ex; 
     } 

?>