【问题标题】:PHP: UPS API TrackingPHP:UPS API 跟踪
【发布时间】:2015-03-28 02:13:00
【问题描述】:

我在使用 UPS api 跟踪包裹时遇到了很多麻烦。我不明白它是如何工作的,我从 UPS 示例中下载了这些文件:

$wsdl = " Add Wsdl File Here ";
$endpointurl = ' Add URL Here';

我没有任何 wsdl 文件,当我下载 UPS 跟踪示例时,也没有。我也不知道该为端点 url 放什么。 UPS 没有解释,或者至少我找不到他们在哪里。

所以我决定试试这个:

https://github.com/gabrielbull/php-ups-api#installation

但我不知道如何使用它。我已经下载了文件,但我不知道我可以把我的测试文件放在哪里:

$tracking = new Ups\Tracking($accessKey, $userId, $password);

try {
    $shipment = $tracking->track('TRACKING NUMBER');

    foreach($shipment->Package->Activity as $activity) {
        var_dump($activity);
    }

} catch (Exception $e) {
    var_dump($e);
}

而且我也不知道将 API 访问密钥、用户名和密码的凭据放在哪里。我现在很困惑,我什么都想不通。我很抱歉我的英语不好。谢谢。

这是我来自 UPS 的完整代码:

  //Configuration
  $access = "XXX";
  $userid = "XXX";
  $passwd = "XXX";
  $wsdl = " Add Wsdl File Here ";
  $operation = "ProcessTrack";
  $endpointurl = ' Add URL Here';
  $outputFileName = "XOLTResult.xml";

  function processTrack()
  {
      //create soap request
    $req['RequestOption'] = '15';
    $tref['CustomerContext'] = 'Add description here';
    $req['TransactionReference'] = $tref;
    $request['Request'] = $req;
    $request['InquiryNumber'] = '';
    $request['TrackingOption'] = '02';

    echo "Request.......\n";
    print_r($request);
    echo "\n\n";
    return $request;
  }

  try
  {

    $mode = array
    (
         'soap_version' => 'SOAP_1_1',  // use soap 1.1 client
         'trace' => 1
    );

    // initialize soap client
    $client = new SoapClient($wsdl , $mode);

    //set endpoint url
    $client->__setLocation($endpointurl);


    //create soap header
    $usernameToken['Username'] = $userid;
    $usernameToken['Password'] = $passwd;
    $serviceAccessLicense['AccessLicenseNumber'] = $access;
    $upss['UsernameToken'] = $usernameToken;
    $upss['ServiceAccessToken'] = $serviceAccessLicense;

    $header = new SoapHeader('http://www.ups.com/XMLSchema/XOLTWS/UPSS/v1.0','UPSSecurity',$upss);
    $client->__setSoapHeaders($header);


    //get response
    $resp = $client->__soapCall($operation ,array(processTrack()));

    //get status
    echo "Response Status: " . $resp->Response->ResponseStatus->Description ."\n";

    //save soap request and response to file
    $fw = fopen($outputFileName , 'w');
    fwrite($fw , "Request: \n" . $client->__getLastRequest() . "\n");
    fwrite($fw , "Response: \n" . $client->__getLastResponse() . "\n");
    fclose($fw);

  }
  catch(Exception $ex)
  {
    print_r ($ex);
  }

【问题讨论】:

    标签: php api ups


    【解决方案1】:

    跟踪 WSDL 位于 Tracking>TrackingPackage>TrackingWebServices>Schemas-WSDLs

    您需要在 $access、$userid、$passwd 中替换您的凭据,并将端点设置为 UPS 测试服务器。

      $access = "XXX";
      $userid = "XXX";
      $passwd = "XXX";
      $wsdl = " Add Wsdl File Here ";
      $operation = "ProcessTrack";
      $endpointurl = ' Add URL Here';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多