Jump to content

Juliano L Laverde Ranite

Members
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0 Comum

About Juliano L Laverde Ranite

  1. Juliano L Laverde Ranite

    Enviar e Receber XML por SOAP PHP

    Estou começando a entender o conceito do SOAP, estou fazendo uma implementação e preciso enviar um XML para o DATASUS e receber a resposta, porém os arquivos já estão preparados, ou seja, um XML pronto pra eu manipular posteriormente no ambiente de produção, para que eu receba como resposta outro XML, procurei muito na internet e consegui montar um código que consegue chegar até o SOAP mas retorna um erro de um atributo que fica dentro da WSDL e não sei como resolver, alguém poderia me ajudar? Por se tratar de uma chave pública vou postar o código literal aqui: <?php try { $client = new SoapClient('https://servicoshm.saude.gov.br/cadsus/CadsusService/v5r0?wsdl'); // "ligar" o debug $parameters = array('<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:cad="http://servicos.saude.gov.br/cadsus/v5r0/cadsusservice" xmlns:cnes="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/cnesusuario" xmlns:fil="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/filtropesquisa" xmlns:nom="http://servicos.saude.gov.br/schema/corporativo/pessoafisica/v1r2/nomecompleto" xmlns:nom1="http://servicos.saude.gov.br/schema/corporativo/pessoafisica/v1r0/nomefamilia" xmlns:cpf="http://servicos.saude.gov.br/schema/corporativo/documento/v1r2/cpf" xmlns:mun="http://servicos.saude.gov.br/schema/corporativo/v1r2/municipio" xmlns:uf="http://servicos.saude.gov.br/schema/corporativo/v1r1/uf" xmlns:tip="http://servicos.saude.gov.br/schema/corporativo/documento/v5r0/tipodocumento"> <soap:Header> <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-F6C95C679D248B6E3F143032021465917"> <wsse:Username>CADSUS.CNS.PDQ.PUBLICO</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">kUXNmiiii#RDdlOELdoe00966</wsse:Password> <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">KkB/ki6qUjcZpGNqL4monw==</wsse:Nonce> <wsu:Created>2015-04-29T15:10:14.659Z</wsu:Created> </wsse:UsernameToken> </wsse:Security> </soap:Header> <soap:Body> <cad:requestPesquisar> <cnes:CNESUsuario> <cnes:CNES>6963447</cnes:CNES> <cnes:Usuario>LEONARDO</cnes:Usuario> <!--Optional:--> <cnes:Senha>?</cnes:Senha> </cnes:CNESUsuario> <fil:FiltroPesquisa> <!--Optional:--> <fil:nomeCompleto> <nom:Nome>SERGIO ARAUJO CORREIA LIMA</nom:Nome> </fil:nomeCompleto> <fil:tipoPesquisa>IDENTICA</fil:tipoPesquisa> </fil:FiltroPesquisa> <cad:higienizar>0</cad:higienizar> </cad:requestPesquisar> </soap:Body> </soap:Envelope>'); $wcf = $client->Pesquisar($parameters); // o resto do código }catch(SoapFault $fault){ echo 'Request: <br/><xmp>', $client->__getLastRequest(), '</xmp><br/><br/> Error Message: <br/>', $fault->getMessage(); } Pelo soapUI eu passo esse XML para a WSDL acima e ele me responde: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <S:Header xmlns:S="http://www.w3.org/2003/05/soap-envelope"> <work:WorkContext xmlns:work="http://oracle.com/weblogic/soap/workarea/">rO0ABXdfABl3ZWJsb2dpYy5hcHAuY2Fkc3VzLWVhci01AAAA1gAAACN3ZWJsb2dpYy53b3JrYXJlYS5TdHJpbmdXb3JrQ29udGV4dAAVNS40LjE1LVNOQVBTSE9ULjEwNzM5AAA=</work:WorkContext> </S:Header> <S:Body xmlns:S="http://www.w3.org/2003/05/soap-envelope"> <cad:responsePesquisar xmlns:cad="http://servicos.saude.gov.br/cadsus/v5r0/cadsusservice"> <res:ResultadoPesquisa xmlns:res="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns18:CNS xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns4:numeroCNS xmlns:ns4="http://servicos.saude.gov.br/schema/cadsus/v5r0/cns">703404696479515</ns4:numeroCNS> </ns18:CNS> <ns18:NomeCompleto xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns11:Nome xmlns:ns11="http://servicos.saude.gov.br/schema/corporativo/pessoafisica/v1r2/nomecompleto">SERGIO ARAUJO CORREIA LIMA</ns11:Nome> </ns18:NomeCompleto> <ns18:dataNascimento xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa">1981-11-10</ns18:dataNascimento> <ns18:Mae xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns11:Nome xmlns:ns11="http://servicos.saude.gov.br/schema/corporativo/pessoafisica/v1r2/nomecompleto">LINDYNALVA SOARES ARAUJO CORREIA LIMA</ns11:Nome> </ns18:Mae> <ns18:Pai xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns11:Nome xmlns:ns11="http://servicos.saude.gov.br/schema/corporativo/pessoafisica/v1r2/nomecompleto">DEJAIR CORREIA LIMA</ns11:Nome> </ns18:Pai> <ns18:Sexo xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns19:codigoSexo xmlns:ns19="http://servicos.saude.gov.br/schema/corporativo/pessoafisica/v1r1/sexo">M</ns19:codigoSexo> </ns18:Sexo> <ns18:MunicipioNascimento xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns15:codigoMunicipio xmlns:ns15="http://servicos.saude.gov.br/schema/corporativo/v1r2/municipio">211130</ns15:codigoMunicipio> <ns15:nomeMunicipio xmlns:ns15="http://servicos.saude.gov.br/schema/corporativo/v1r2/municipio">SAO LUIS</ns15:nomeMunicipio> <ns15:UF xmlns:ns15="http://servicos.saude.gov.br/schema/corporativo/v1r2/municipio"> <ns16:codigoUF xmlns:ns16="http://servicos.saude.gov.br/schema/corporativo/v1r1/uf"/> <ns16:siglaUF xmlns:ns16="http://servicos.saude.gov.br/schema/corporativo/v1r1/uf">MA</ns16:siglaUF> </ns15:UF> </ns18:MunicipioNascimento> <ns18:PaisNascimento xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns20:codigoPais xmlns:ns20="http://servicos.saude.gov.br/schema/corporativo/v1r2/pais">010</ns20:codigoPais> <ns20:nomePais xmlns:ns20="http://servicos.saude.gov.br/schema/corporativo/v1r2/pais">BRASIL</ns20:nomePais> </ns18:PaisNascimento> <ns18:GrauQualidade xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns21:percentualQualidade xmlns:ns21="http://servicos.saude.gov.br/schema/cadsus/v5r0/grauqualidade">91</ns21:percentualQualidade> </ns18:GrauQualidade> <ns18:IdentificadorCorporativo xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa"> <ns2:numeroIdentificadorCorporativo xmlns:ns2="http://servicos.saude.gov.br/schema/cadsus/v5r0/identificadorcorporativo">0002189687</ns2:numeroIdentificadorCorporativo> </ns18:IdentificadorCorporativo> <ns18:Situacao xmlns:ns18="http://servicos.saude.gov.br/wsdl/mensageria/v5r0/resultadopesquisa">true</ns18:Situacao> </res:ResultadoPesquisa> </cad:responsePesquisar> </S:Body> </soap:Envelope> *** Porém quando eu rodo o código acima ele me retorna: SOAP-ERROR: Encoding: object has no 'CNESUsuario' property Já li uma tonelada de conteúdo e não consigo encontrar uma solução para o problema.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.