PHP UPS跟踪无响应

时间:2019-01-17 23:32:54

标签: php ups

这是我在UPS跟踪方面的第一个突破,我什么也没得到。我在“网络”标签中看到200,但这是从我的服务器提供的页面上显示的。

您发现以下代码有什么问题吗?

    <?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// UPS SHIP ORDER TRACKING
$xmlRequest1='<?xml version="1.0"?>
<AccessRequest xml:lang="en-US">
<AccessLicenseNumber>my access key</AccessLicenseNumber>
<UserId>my user id</UserId>
<Password>my password</Password>
</AccessRequest>
<?xml version="1.0"?>
<TrackRequest xml:lang="en-US">
<Request>
<TransactionReference>
<CustomerContext>Your Test Case Summary
Description</CustomerContext>
<XpciVersion>1.0</XpciVersion>
</TransactionReference>
<RequestAction>Track</RequestAction>
<RequestOption>activity</RequestOption>
</Request>
<TrackingNumber>1Z12345E0205271688</TrackingNumber>
</TrackRequest>';

  try
  {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://wwwcie.ups.com/ups.app/xml/Track");
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3600);

    echo $xmlResponse = curl_exec ($ch); // TRACKING RESPONSE
  }
  catch(Exception $ex)
  {
    print_r("Exception: " . $ex);
  }

无论是在http中提供服务,还是在go命令行php post_track_ups_2.php中提供服务,都不会打印或回显任何内容。我应该看不到东西吗?

网站图标有404,但这没什么。这应该工作!至少不应该抛出异常吗?东西!

跟踪编号来自UPS文档第7页“ Tracking Web Service开发人员指南”

预先感谢

1 个答案:

答案 0 :(得分:0)

与所有评论一样,您可以看到此问题与不使用最新的openssl有关,后者具有tsl 1.2,UPS和其他人希望该tsl具有安全的cURL发布和响应。

以防万一其他人经历了这些,以下是我为使Mac OS 10.10遵从性而采取的步骤。

首先,我从openssl.org下载了最新的openssl并进行了安装-您可以在Google上找到比我能提供的更好的说明,但基本上要确保您的Brew是最新的并可以使用它进行安装。

这将在CLI(命令行界面)上获得最新的openssl,但不适用于apache / php Web浏览器。我通过制作phpInfo()页面发现了这一点,令我震惊的是,它仍然显示为0.9.8zf

大量阅读后,这就是我所做的:

cd into the openssl directory that you expanded after download

您的路径可能与我的路径不同,因此请相应调整:

cd /Users/<home directory>/Downloads/openssl-1.0.2q
./Configure darwin64-x86_64-cc -fPIC shared --prefix=/PREFIX/openssl --openssldir=/PREFIX/openssl
make
make test
make install

brew install php --with-apache --with-homebrew-curl --with-homebrew-libxslt --with-homebrew-openssl --without-snmp

set path - /usr/local/Cellar/php56/5.6.9/bin/php in httpd-ssl.conf
also export /usr/local/Cellar/php56/5.6.9/bin/php in ~/.bash_profile
source ~/.bash_profile

将以下行插入httpd.conf

LoadModule php5_module /usr/local/Cellar/php56/5.6.9/libexec/apache2/libphp5.so
sudo apachectl restart

感谢所有发表评论的人。一件事导致另一件事到达这一点,我感谢大家。