Web 服务 SOAP 中的参数



我很快就开始通过 SOAP 搞砸网络服务,我有一个问题,我需要在请求中发送以下信息:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.senior.com.br">
<soapenv:Header/>
<soapenv:Body>
<ser:AniversariantesMes>
<user>usuario</user>
<password>senha</password>
<encryption>0</encryption>
<parameters>
<!--Optional:-->
<competencia>01/01/2020</competencia>
<!--Optional:-->
<flowInstanceID>?</flowInstanceID>
<!--Optional:-->
<flowName>?</flowName>
</parameters>
</ser:AniversariantesMes>
</soapenv:Body>
</soapenv:Envelope>

我正在尝试使用以下代码:

$client = new SoapClient('link do soap');
$function = 'AniversariantesMes';
$parameters = [
'competencia' => '01/01/2020',
];
$arguments = array('AniversariantesMes' => array(
'user'          =>  'senior',
'password'      =>  'senior',
'encryption'    =>  0,
'parameters'    =>  $parameters,
));
print_r($arguments);
$options = array('location' => 'link');
$result  = $client -> __soapCall($function,$arguments,$options);
print_r($result);

代码不考虑"能力"并带来默认值(我在 SoapUI 上测试了过滤器,当通过"能力"时,他过滤了一月的生日(

你能在你的$parameters中测试下面的功能吗?

function SoapVar($key , $value)
{
return new SoapVar("<".$key.">".$value."</".$key.">", XSD_ANYXML, null, null, null);
}
$parameters = [SoapVar( 'competencia' ,  '02/01/2020')];

希望有用。

最新更新