我下载了示例代码以从fedex的网站请求一个费率…我把WSDL文件放在正确的位置,我有我的acct号码,密码,米数和密钥.当我运行脚本我得到这个错误:

Error in processing transaction.
ERROR
prof
1000
Authentication Failed

他们给出的脚本如下,是的,我实际上替换了XXX和YYY:

<?PHP

// copyright 2009,FedEx Corporation. All rights reserved.
// Version 7.0.0

require_once('fedex-common.PHP5');

$newline = "<br />";
//The WSDL is not included with the sample code.
//Please include and reference in $path_to_wsdl variable.
$path_to_wsdl = "RateService_v7.wsdl";

ini_set("soap.wsdl_cache_enabled","0");

$client = new SoapClient($path_to_wsdl,array('trace' => 1)); // Refer to http://us3.PHP.net/manual/en/ref.soap.PHP for more information

$request['WebAuthenticationDetail'] = array('UserCredential' =>
                                      array('Key' => 'XXX','Password' => 'YYY')); // Replace 'XXX' and 'YYY' with FedEx provided credentials 
$request['ClientDetail'] = array('AccountNumber' => 'XXX','MeterNumber' => 'YYY');// Replace 'XXX' with your account and meter number
$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request v7 using PHP ***');
$request['Version'] = array('ServiceId' => 'crs','Major' => '7','Intermediate' => '0','Minor' => '0');
$request['ReturnTransitAndCommit'] = true;
$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP,REQUEST_COURIER,...
$request['RequestedShipment']['ShipTimestamp'] = date('c');
$request['RequestedShipment']['ServiceType'] = 'FEDEX_GROUND'; // valid values STANDARD_OVERNIGHT,PRIORITY_OVERNIGHT,FEDEX_GROUND,...
$request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_Box,FEDEX_PAK,FEDEX_TUBE,YOUR_PACKAGING,...
$request['RequestedShipment']['Shipper'] = array('Address' => array(
                                          'StreetLines' => array('10 Fed Ex Pkwy'),// Origin details
                                          'City' => 'Memphis','StateOrProvinceCode' => 'TN','PostalCode' => '38115','CountryCode' => 'US'));
$request['RequestedShipment']['Recipient'] = array('Address' => array (
                                               'StreetLines' => array('13450 Farmcrest Ct'),// Destination details
                                               'City' => 'Herndon','StateOrProvinceCode' => 'VA','PostalCode' => '20171','CountryCode' => 'US'));
$request['RequestedShipment']['ShippingChargesPayment'] = array('PaymentType' => 'SENDER','Payor' => array('AccountNumber' => 'XXX',// Replace 'XXX' with payor's account number
                                                                     'CountryCode' => 'US'));
$request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; 
$request['RequestedShipment']['RateRequestTypes'] = 'LIST'; 
$request['RequestedShipment']['PackageCount'] = '2';
$request['RequestedShipment']['PackageDetailSpecified'] = true;
$request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES';  //  Or PACKAGE_SUMMARY
$request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => 2.0,'Units' => 'LB'),'Dimensions' => array('Length' => 10,'Width' => 10,'Height' => 3,'Units' => 'IN')),'1' => array('Weight' => array('Value' => 5.0,'Dimensions' => array('Length' => 20,'Width' => 20,'Height' => 10,'Units' => 'IN')));
try 
{
    $response = $client ->getRates($request);

    if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR')
    {
        printRequestResponse($client);
    }
    else
    {
        echo 'Error in processing transaction.'. $newline. $newline; 
        foreach ($response -> Notifications as $notification)
        {           
            if(is_array($response -> Notifications))
            {              
               echo $notification -> Severity;
               echo ': ';           
               echo $notification -> Message . $newline;
            }
            else
            {
                echo $notification . $newline;
            }
        } 
    } 

    writetoLog($client);    // Write to log file   

} catch (SoapFault $exception) {
   printFault($exception,$client);        
}

?>

我不太清楚为什么它不工作,我已经阅读了关于使用代理,但我不太确定我将如何使用它在这种情况下?不是使用SOAP和WSDL避免使用CURL,Direct Connect类型的东西?

如果您使用SoapUI( http://www.soapui.org/)联系WSDL,您将获得什么响应?

(SoapUI可以让您无需编程就可以测试SOAP / Wsdl,因此您可以检查调用是否正确,如果是,则代码中出现问题.)

php – 通过WSDL / SOAP使用Fedex Webservice的问题的更多相关文章

  1. 无法使用参数列表在Swift 2中调用“sendAsynchronousRequest”

    我目前正在重写部分Swift1.2代码,以便与Swift2.0兼容.实际上我无法弄清楚对“sendAsynchronousRequest”做了哪些更改–目前我的所有请求都失败了Cannotinvoke‘sendAsynchronousRequest’withanargumentlistoftype‘(NSURLRequest,queue:NSOperationQueue,completionHan

  2. SoapFault – faultcode:’ns1:unexpected-error’android SOAP call

    我试图使用一个WSDL文件调用SOAPWeb服务.我在其中添加了所有必需的参数.但我收到的错误如下:这是我的代码示例:我怀疑SOAPACTION可能会导致问题.如果我们将SOAPACtion留空并且我们调用Web服务,那可能吗?这也是您向请求添加属性的方法:

  3. 如何在Android SOAP Webservices中将InputStream数据转换为String

    当我从Android使用soapWeb服务时,我希望在输出字符串中显示结果,如何将该输入流转换为Sting?我的最终代码请看一下,让我知道我在哪里可以将转换放在上面的代码中?

  4. android – 使用SOAP将图像从库发送到Web服务

    我已经在网上搜索过,找不到任何有关使用SOAP向Web服务发送图像(或任何附件)的文档.我一直在发送文本数据,但我现在需要从库中发送图像以及文本数据,这会带来另一个问题–一次制作两个或多个异步任务.如果要发送的记录有附属图像,我将需要总共进行4次通话;>发送文本数据.>检查服务器上是否已存在该文件.>发送文件.>使用从服务器发回的u_id将文件与服务器上的记录链接.我被建议使用Base64方法将文

  5. 使用k-Soap从Android的Callin Java webservice出错

    我在Java中创建了一个简单的登录Web服务,我从Android代码中调用它.我将两个字符串参数传递给Webservice.但它们在Webservice中变为null.Web服务托管在LocalhostTomcat服务器上WSDL文件是:我是Android和CreatingWebService的新手.我尝试了很多其他解决方案但它似乎不起作用.解决方法我找到了问题的解决方案.我从wdsl打开了xsd架构.虽然我已经给出了@WebParam注释,但它只有arg0和arg1参数.我在请求中更改了它,参数正确传递

  6. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. JSP 中request与response的用法详解

    这篇文章主要介绍了JSP 中request与response的用法详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

  8. promise封装wx.request的方法

    这篇文章主要介绍了promise封装wx.request的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. 关于request.getHeader("Referer")的问题探讨

    request.getHeader("Referer")获取上次访问的URL链接,在什么情况下他会出现问题,下面为大家分享下,感兴趣的朋友不要错过

  10. Laravel5.1 框架Request请求操作常见用法实例分析

    这篇文章主要介绍了Laravel5.1 框架Request请求操作常见用法,结合实例形式分析了Laravel5.1 框架Request请求操作常见的属性和方法,及相关操作注意事项,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部