使用PHP SoapClient调用FreightQuote API

使用PHP SoapClient调用FreightQuote API,php,web-services,soap-client,Php,Web Services,Soap Client,我正在尝试使用SoapClient调用FreightQuote API以获取报价 我收到一个响应,但这是一个验证错误。错误类型为“未知”,消息为“发生一般错误” 我的代码: $apiHostPath = "https://b2b.Freightquote.com/WebService/QuoteService.asmx?wsdl"; $AuthClient = new SoapClient($apiHostPath); $xmlString = file_get_contents("temp.

我正在尝试使用SoapClient调用FreightQuote API以获取报价

我收到一个响应,但这是一个验证错误。错误类型为“未知”,消息为“发生一般错误”

我的代码:

$apiHostPath = "https://b2b.Freightquote.com/WebService/QuoteService.asmx?wsdl";
$AuthClient = new SoapClient($apiHostPath); 
$xmlString = file_get_contents("temp.xml");
$soapBody = new SoapVar($xmlString, XSD_ANYXML);
$result = $AuthClient->GetRatingEngineQuote(array($soapBody));
echo get_class($result);
print_r($result);
我的XML文件:


客户ID
商对商
LTL
假的
2019-02-17T00:00:00
假的
假的
20
任何
任何
不需要
起源
假的
假的
假的
假的
贸易展
假的
假的
假的
假的
60632
美国
目的地
假的
假的
假的
假的
贸易展
假的
假的
假的
假的
44113
美国
55
1200
0
0
0
书
托盘\u 48x48
假的
0
通用机械
纽科马克群岛
假的
0
0
5.
0
****
**** 
违约

是否可能是您在
之间缺少所需的
无或站点或发货人或接收人
?我查看了WSDL,似乎这是必需的

我解决了它并将其发布在这里,以便对其他有相同问题的人有所帮助。我参考了这个问题,它的选定答案解决了我的问题。所编写的代码只需修改一次,
$soapBody
变量以前是在数组中传递的,需要在不使用数组的情况下直接传递。正确的行如下所示:

$result = $AuthClient->GetRatingEngineQuote($soapBody);
XML文件以XML字符串的形式读取和传递,因此需要从其实际正文开始,如下所示:

$result = $AuthClient->GetRatingEngineQuote($soapBody);

客户ID
商对商
LTL
假的
2019-02-13T14:12:48
假的
位置
起源
假的
假的
假的
假的
假的
假的
假的
假的
测试用户
5551237777
XXXXX
地址1
123主要
俄亥俄州
哦
30303
美国
地点名称
目的地
假的
假的
假的
假的
假的
假的
假的
假的
名字
33333333
abc@gmail.com
地址2
123主要
亚特兰大
GA
60606
美国
400
200
50
48
36
书
托盘\u 48x48
假的
0
金属
纽科马克群岛
假的
0
0
1.
0
名字
密码
违约

同样的参数工作正常,并在C代码中得到响应。它只是在PHP代码中不起作用。因此,这不是问题所在。