Jump to content

Wesley da Silva Gomes

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About Wesley da Silva Gomes

  1. Wesley da Silva Gomes

    Consumir WebService usando SOAP php enviando um XML

    Bom dia, o script esta gerando mesmo XML que o SOAPUI envia, porem mesmo assim, no SOAPUI funciona e no script parece que não envia o XML, ou que vai nulo o XML que eu tento enviar. Tenho a impressão que pode ser algo no trecho de código onde eu passo os parâmetros para o WebMetodo, mas também já tentei os exemplos que eu achei.
  2. Wesley da Silva Gomes

    Consumir WebService usando SOAP php enviando um XML

    Fiz assim e também foi vazio. $result = $client->IncluirNotaAvaliacao($xml->asXML()); Já tentei de varias formas, já testei tudo que eu consegui imaginar, e sempre me retorna esse erro. Já faz um mês quase que eu estou tentando consumir esse WS. Não sei o que estou fazendo de errado.
  3. Wesley da Silva Gomes

    Consumir WebService usando SOAP php enviando um XML

    Bom dia. Tentei fazer com SimpleXMLElement porem quando eu tento enviar o XML ele não aparece no Request que eu envio. Ficando assim. <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.totvs.com.br/br/" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <SOAP-ENV:Header> <ns2:Security> <ns2:UsernameToken> <ns2:Username>xxx</ns2:Username> <ns2:Password>xxxx</ns2:Password> </ns2:UsernameToken> </ns2:Security> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:IncluirNotaAvaliacao/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> E essa 'STRINGENVIO' é um campo no banco de dados onde fica armazenado o XML que eu enviei. Por isso não adianta enviar o XML com uma tag 'STRINGENVIO', mas igual pra descargo de consciência eu testei com essa tag, e como esperado também não funcionou.
  4. Wesley da Silva Gomes

    Consumir WebService usando SOAP php enviando um XML

    Boa tarde, estou tentando consumir um WebService da TOTVS via php usando SOAP php nativo do php 7, porem sempre que eu tento enviar o XML retorna um erro, e o WS não consegue inserir as informações e retorna um erro como se não estivesse enviado o XML que eu passo por parâmetro para a o método. XML que deve ser enviado. <INCLUIRNOTAAVALIACAO> <SNOTAS> <CODCOLIGADA>1</CODCOLIGADA> <IDTURMADISC>1123456</IDTURMADISC> <NOTA>1</NOTA> <CODPROVA>1</CODPROVA> <CODETAPA>1</CODETAPA> <RA>13003306499</RA> </SNOTAS> </INCLUIRNOTAAVALIACAO> Erro que o servidor do WS me retorna. 555 - Erro interno do servidor. Erro ao executar o WebMethod: IncluirNotaAvaliacao. Column 'STRINGENVIO' does not allow nulls. STRINGENVIO seria a coluna em uma tabela no banco em o WS faz a inserção, porem parece que ele esta indo vazio. Segue abaixo o script. <?php $client = new SoapClient('wsdl',array("trace"=>1)); AddWSSUsernameToken($client, 'user', 'password='); $function = 'IncluirNotaAvaliacao'; $CODCOLIGADA = '133'; $IDTURMADISC = '103621'; $NOTA = '1'; $CODPROVA = '1'; $CODETAPA = '1'; $RA = '13000006499'; $CODCOLIGADA = new SoapVar($CODCOLIGADA, XSD_STRING, null, null, 'CODCOLIGADA'); $IDTURMADISC = new SoapVar($IDTURMADISC, XSD_STRING, null, null, 'IDTURMADISC'); $NOTA = new SoapVar($NOTA, XSD_STRING, null, null, 'NOTA'); $CODPROVA = new SoapVar($CODPROVA, XSD_STRING, null, null, 'CODPROVA'); $CODETAPA = new SoapVar($CODETAPA, XSD_STRING, null, null, 'CODETAPA'); $RA = new SoapVar($RA, XSD_STRING, null, null, 'RA'); $SNOTAS = new SoapVar(array($CODCOLIGADA, $IDTURMADISC,$NOTA, $CODPROVA,$CODETAPA, $RA), SOAP_ENC_OBJECT, null, null, 'SNOTAS'); $METODO = new SoapVar(array($SNOTAS), SOAP_ENC_OBJECT, null, null, 'INCLUIRNOTAAVALIACAO'); $xml = new SoapVar(array($METODO), SOAP_ENC_OBJECT, null, null); $result = $client->IncluirNotaAvaliacao($xml); echo '<br><br>Response: <br>'; VAR_DUMP($result); print_r ('<br><br>REQUEST HEADERS<br>:\n' . $client->__getLastRequestHeaders (). "\n"); print_r ("<br><br>REQUEST Response<br>:\n" . $client->__getLastResponseHeaders (). "\n"); print_r ("<br><br>REQUEST<br>:\n" . htmlentities($client->__getLastRequest()). "\n"); function AddWSSUsernameToken($client, $username, $password){ $wssNamespace = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"; $username = new SoapVar($username, XSD_STRING, null, null, 'Username', $wssNamespace); $password = new SoapVar($password, XSD_STRING, null, null, 'Password', $wssNamespace); $usernameToken = new SoapVar(array($username, $password), SOAP_ENC_OBJECT, null, null, 'UsernameToken', $wssNamespace); $usernameToken = new SoapVar(array($usernameToken), SOAP_ENC_OBJECT, null, null, null, $wssNamespace); $wssUsernameTokenHeader = new SoapHeader($wssNamespace, 'Security', $usernameToken); $client->__setSoapHeaders($wssUsernameTokenHeader); } ?> Usando a função __getLastRequest me retorna o seguinte XML. <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.totvs.com.br/br/" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <SOAP-ENV:Header> <ns2:Security> <ns2:UsernameToken> <ns2:Username>user</ns2:Username> <ns2:Password>password</ns2:Password> </ns2:UsernameToken> </ns2:Security> </SOAP-ENV:Header> <SOAP-ENV:Body> <ns1:IncluirNotaAvaliacao> <INCLUIRNOTAAVALIACAO> <SNOTAS> <CODCOLIGADA>133</CODCOLIGADA> <IDTURMADISC>103621</IDTURMADISC> <NOTA>1</NOTA> <CODPROVA>1</CODPROVA> <CODETAPA>1</CODETAPA> <RA>13000006499</RA> </SNOTAS> </INCLUIRNOTAAVALIACAO> </ns1:IncluirNotaAvaliacao> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Por favor quem puder me passar, eu não tenho nenhum experiencia com WS e não sei se estou consumindo corretamente o método. Preciso conseguir consumir esse WS.
×

Important Information

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