$soapclient = new soapclient("http://shippingapi.ebay.cn/production/v2/orderservice.asmx?wsdl");$params = array(
'Version' => "2.0.0",
    'APIDevUserID' => "sureelectronics",
'APIPassword' => "7114209N1OCBA61N83CRA0PY1F743DSGTM7GEAY581CND3BHG0POUW20111540",
'APISellerUserID' => "sureelectronics",
'MessageID' => "125625622452",
'TrackCode' => "LK042013892CN"
);
$functions = $soapclient->CancelAPACShippingPackage($params);print_r($functions);
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ship="http://shippingapi.pushauction.net/">
   <soap:Header/>
   <soap:Body>
      <ship:CancelAPACShippingPackage>
         <ship:CancelAPACShippingPackageRequest>
            <ship:Version>2.0.0</ship:Version>
            <ship:APIDevUserID>****</ship:APIDevUserID>
            <ship:APIPassword>********</ship:APIPassword>
            <ship:APISellerUserID>*******</ship:APISellerUserID>
            <ship:MessageID>1234</ship:MessageID>
            <ship:TrackCode>LK*********CN</ship:TrackCode>
         </ship:CancelAPACShippingPackageRequest>
      </ship:CancelAPACShippingPackage>
   </soap:Body>
</soap:Envelope>为什么为出错啊,出错如下:
<b>Fatal error</b>:  Uncaught SoapFault exception: [soap:Server] System.Web.Services.Protocols.SoapException: Server was unable to process request. ---&gt; System.NullReferenceException: Object reference not set to an instance of an object.
   at WebServiceCN.OrderService.CancelAPACShippingPackage(CancelAPACShippingPackageRequest CancelAPACShippingPackageRequest)

解决方案 »

  1.   

    不是你用错了方法,就是你弄错了参数CancelAPACShippingPackage 方法需要 CancelAPACShippingPackage 类型的参数
    而 
        [14] => struct CancelAPACShippingPackage {
     CancelAPACShippingPackageRequest CancelAPACShippingPackageRequest;
    }
        [15] => struct CancelAPACShippingPackageRequest {
     string TrackCode;
    }在所有的参数结构里,都没有你给的那样的。
    最接近的是
    [2] => struct BaseRequest {
     string Version;
     string APIDevUserID;
     string APIPassword;
     string APISellerUserID;
     string MessageID;
    }
      

  2.   


    我调用的方法是:CancelAPACShippingPackage他所需要的参数是:
    <ship:CancelAPACShippingPackageRequest>
                <ship:Version>2.0.0</ship:Version>
                <ship:APIDevUserID>****</ship:APIDevUserID>
                <ship:APIPassword>********</ship:APIPassword>
                <ship:APISellerUserID>*******</ship:APISellerUserID>
                <ship:MessageID>1234</ship:MessageID>
                <ship:TrackCode>LK*********CN</ship:TrackCode>
             </ship:CancelAPACShippingPackageRequest>
          </ship:CancelAPACShippingPackage>
    请问一下,这个参数怎么传递啊,或能一个简单的样例代码么?
      

  3.   

    心情好,顺着你的思路写了……$soapclient = new soapclient("http://shippingapi.ebay.cn/production/v2/orderservice.asmx?wsdl");
    print_r($soapclient->CancelAPACShippingPackage(array('CancelAPACShippingPackageRequest' => array('TrackCode' => "LK042013892CN"))));stdClass Object
    (
        [CancelAPACShippingPackageResult] => stdClass Object
            (
                [Ack] => Failure
                [Message] => Invalid Web Service version
                [Timestamp] => 2011-04-22T18:28:50.377625+08:00
            )
     
    )
      

  4.   

    谢谢楼上的,Invalid Web Service version请问一下这个是什么原因啊,怎么解决啊
      

  5.   

    CancelAPACShippingPackage 的含义是 取消亚太地区运输订单
    您只需传递决定单号 'TrackCode' 
      

  6.   

    出现错误 了啊
     [Message] => Invalid Web Service version
      

  7.   

    $soapclient = new soapclient("http://shippingapi.ebay.cn/production/v2/orderservice.asmx?wsdl");$params = array(
        'Version' => "2.0.0",
        'APIDevUserID' => "sureelectronics",
        'APIPassword' => "7114209N1OCBA61N83CRA0PY1F743DSGTM7GEAY581CND3BHG0POUW20111540",
        'APISellerUserID' => "sureelectronics",
        'MessageID' => "125625622452",    
        'TrackCode' => "LK042013892CN"    
    );$functions = $soapclient->CancelAPACShippingPackage(array("CancelAPACShippingPackageRequest"=>$params));
    print_r( $functions);
    结果:stdClass Object
    (
        [CancelAPACShippingPackageResult] => stdClass Object
            (
                [Version] => 2.0.0
                [Ack] => Failure
                [Message] => This eBay account must be SELLER UPLOAD in preference in order to use API.
                [Timestamp] => 2011-04-22T20:07:37.83075+08:00
                [InvocationID] => 125625622452
            ))google 出错信息This eBay account must be SELLER. UPLOAD in preference in order to use API. 
    表示:
    用户需要在习惯设定设为“手工上传订单或API”才可以使.
      

  8.   

    非常感谢楼上大哥的帮助,现有一个新问题,我上传一个订单上去的时候,出现如下错误
    stdClass Object
    (
        [AddAPACShippingPackageResult] => stdClass Object
            (
                [Ack] => Failure
                [Message] => Invalid Web Service version
                [Timestamp] => 2011-04-23T10:18:41.20575+08:00
            )
     
    )
    我的代码:$soapclient = new soapclient("http://shippingapi.ebay.cn/production/v2/orderservice.asmx?wsdl");$params0 = array(
        'Version' => "2.0.0",
        'APIDevUserID' => "sureelectronics",
        'APIPassword' => "7114209N1OCBA61N83CRA0PY1F743DSGTM7GEAY581CND3BHG0POUW20111540",
        'APISellerUserID' => "sureelectronics",  
    );$params1 = array(
        'Email' => "[email protected]",
        'Company' => "TEST",
        'Country' => "TEST",
        'Province' => "TEST",
    'City' => "TEST",
    'District' => "TEST",
    'Street' => "TEST",
    'Postcode' => "231400",  
    'Contact' => "150456823",  
    'Mobile' => "1505486054",  
    'Phone' => "0256523652"
    );
    $params2 = array(
        'Contact' => "[email protected]",
        'Company' => "TEST",
        'Street' => "TEST",
        'District' => "TEST",
    'City' => "TEST",
    'Province' => "TEST",
    'Postcode' => "TEST",
    'Country' => "231400",  
    'Email' => "150456823",  
    'Mobile' => "1505486054"

    );
    $params3 = array(
        'Email' => "[email protected]",
        'Company' => "TEST",
        'Contact' => "TEST",
        'Phone' => "TEST",
    'Street' => "TEST",
    'City' => "TEST",
    'Province' => "TEST",
    'Postcode' => "231400",  
    'Country' => "United States",  
    'CountryCode' => "US"

    );$params4 = array(
        'CurrencyCode' => "[email protected]",
        'EBayEmail' => "[email protected]",
        'EBayBuyerID' => "TEST",
        'EBayItemID' => "TEST",
    'EBayItemTitle' => "TEST",
    'EBayMessage' => "TEST",
    'EBaySiteID' => "1",
    'EBayTransactionID' => "231400",  
    'Note' => "United States",  
    'PaymentDate' => "256",
    'PayPalEmail' => "256",
    'PayPalMessage' => "256",
    'PostedQTY' => "256",
    'SalesRecordNumber' => "256",
    'SoldDate' => "256",
    'SoldPrice' => "256",
    'SoldQTY' => "256",
    'SKU' => "256"

    );
    $params5 = array(
        'SKUID' => "256",
        'Weight' => 256,
        'CustomsTitleCN' => "TEST",
        'CustomsTitleEN' => "TEST",
    'DeclaredValue' => 11,
    'OriginCountryName' => "United States",
    'OriginCountryCode' => "US"
    );$totalparams = array(

    array("BaseRequest"=>$params0),
    array("PickUpAddress"=>$params1),
    array("ShipFromAddress"=>$params2),
    array("ShipToAddress"=>$params3),
    array("EMSPickUpType"=>1),

    array("Item"=>$params4),
    array("SKU"=>$params5),




    );


    $params = array("AddAPACShippingPackageRequest"=>$totalparams);$functions = $soapclient->AddAPACShippingPackage($params);print_r($functions);
      

  9.   

     E邮宝怎么弄 AddAPACShippingPackage 给个简单的例子 谢谢(*^__^*)