好不容易调通了php的soap接口,一调用就出现奇怪的问题
try {
$url = 'http://xxx.xxx.xxx.xxx/cgi-bin/fglccgi/ws/r/aws_plm?WSDL';
$fun_name = 'xxxx.aws_gl_confirm';
$t_data = [
'dbs' => 'szxx028',
'ecb01' => 'EA100030800',
'ecb02' => '000',
'ta_ecb01' => '1',
'ecb03' => '1',
'ty' => 1
];
$client = new SoapClient($url);
$result = $client->__soapCall($fun_name, $t_data);
echo '<pre>';
// $result = json_decode($result);
print_r($result);
printf("Result = %s", $result['description']);
} catch (Exception $e) {
printf("Message = %s", $e->__toString());
}
一查,才知道是参数赋值的顺序不对,
通常php的数组赋值哪管先后顺序的?
总之,
SOAP的参数必须严格按照定义的顺序赋值