我看遍了所有堆栈溢出,只发现了几个相关的线程,但他们没有解决我的问题。此外,对于它的价值,这是一个名为Estes的LTL运输公司,我正试图让这个工作通过。肥皂web服务不工作(PHP)
下面是我使用的代码:
$url = "http://www.estes-express.com/rating/ratequote/services/RateQuoteService?wsdl";
$username = 'un';
$password = 'pw';
$client = new SoapClient($url);
//Prepare SoapHeader parameters
$cred = array(
'user' => $username,
'password' => $password
);
$headers = new SoapHeader('http://ws.estesexpress.com/ratequote', 'auth', $cred);
$client->__setSoapHeaders($header);
$params = array(
"requestID" => "20131724",
"account" => "9252066",
"originPoint" => array('countryCode' => 'US', 'postalCode' => "43537"),
"destinationPoint" => array('countryCode' => 'US', 'postalCode' => "43460"),
"payor" => 'S',
"terms" => 'PPD',
"stackable" => 'N',
"baseCommodities" => array('commodity' => array('class' => "55", 'weight' => "500"))
);
$return = $client->getQuote(array("rateRequest"=>$params));
return $return;
这是我得到的回应: [客户] SOAP的错误:编码:对象有没有 '请求ID' 属性
任何帮助,这将是伟大的!
PS。我已经尝试将它们放入stdClass()对象中,但没有结果。另外,如果你想检查它们,他们的WSDL在代码中。
编辑: 这里的要求应该是什么样子的转储:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rat="http://ws.estesexpress.com/ratequote" xmlns:rat1="http://ws.estesexpress.com/schema/2012/12/ratequote">
<soapenv:Header>
<rat:auth>
<rat:user>xxxxx</rat:user>
<rat:password>xxxxxx</rat:password>
</rat:auth>
</soapenv:Header>
<soapenv:Body>
<rat1:rateRequest>
<rat1:requestID>20131724</rat1:requestID>
<rat1:account>9252066</rat1:account>
<rat1:originPoint>
<rat1:countryCode>US</rat1:countryCode>
<rat1:postalCode>43537</rat1:postalCode>
<!--Optional:-->
<rat1:city>Maumee</rat1:city>
<!--Optional:-->
<rat1:stateProvince>OH</rat1:stateProvince>
</rat1:originPoint>
<rat1:destinationPoint>
<rat1:countryCode>US</rat1:countryCode>
<rat1:postalCode>23237</rat1:postalCode>
<rat1:stateProvince>VA</rat1:stateProvince>
</rat1:destinationPoint>
<rat1:payor>S</rat1:payor>
<rat1:terms>PPD</rat1:terms>
<rat1:stackable>N</rat1:stackable>
<rat1:baseCommodities>
<!--1 to 99 repetitions:-->
<rat1:commodity>
<rat1:class>50</rat1:class>
<rat1:weight>100</rat1:weight>
</rat1:commodity>
</rat1:baseCommodities>
</rat1:rateRequest>
</soapenv:Body>
</soapenv:Envelope>
看起来你的'getQuote'函数有什么问题似乎完全明显。你能得到你所有的params/header的转储并分享这些吗? –
您是否检查此帖:http://stackoverflow.com/questions/7269268/soap-error-encoding-object-has-no-recordid-property –
Anup,不幸的是,它并没有解决问题。 itcouldevenbeaboat我在我的问题中编辑了我的值,以显示实际值并添加了一个请求示例。 –