这是我在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开发人员指南”
预先感谢
答案 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
感谢所有发表评论的人。一件事导致另一件事到达这一点,我感谢大家。