UPS php api - 创建订单

时间:2014-04-10 10:44:55

标签: ups

我正在尝试整合UPS php api以生成发送内容的在线订单。 我能够验证地址并获得物品转移的费率,但我无法找到任何生成订单和courir标签的解决方案,有人可以帮助我实现这一点。

1 个答案:

答案 0 :(得分:0)

UPS Developer Kit和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;
      }

?>