Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesleyromano

Web service nusoap com chaves duplicadas

Recommended Posts

Boa tarde Amigos.

Estou com dificuldade pra implementar / fazer funcionar a seguinte chamada ao web service.

- Estrutura esperada:

<soapenv:Body>
<web:execute>
<arg0>
<context>FindCard</context>
<fields>
<key>viagem.contratante.documento.numero</key>
<value>06181156000100</value>
</fields>
<fields>
<key>viagem.cartao.numero</key>
<value>4417810025749012</value>
</fields>
</arg0>
</web:execute>
</soapenv:Body>

Meu código:

$arguments = array(
'arg0'=>array('context'=>'FindCard',
'fields'=>array('key'=>'viagem.contratante.documento.numero','value'=>$viagem_contratante_documento_numero),
'fields'=>array('key'=>'viagem.cartao.numero','value'=>$viagem_cartao_numero)
)
);

Xml gerado:

<SOAP-ENV:Body><ns1:execute><arg0><context>FindCard</context><fields><key>viagem.cartao.numero</key><value>4417810197941017</value></fields></arg0></ns1:execute></SOAP-ENV:Body></SOAP-ENV:Envelope>

O segundo array 'fields' substitui o primeiro.

Talvez seja simples a solução, mas realmente não consegui implementar esta solução.

Desde já agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, por você estar usando o mesmo nome para o índice, sempre vai ficar o último.

Deixe as informações separadas em um array dentro de "fields" e veja se funciona:

$arguments = Array(
    "arg0" => Array(
        "context" => "FindCard",
        "fields" => Array(
            Array("key" => "viagem.contratante.documento.numero", "value" => $viagem_contratante_documento_numero),
            Array("key" => "viagem.cartao.numero", "value" => $viagem_cartao_numero)
        )
    )
);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.