Jump to content
estilovirtual

Comunicação com webservice caixa boleto

Recommended Posts

Boa tarde pessoal, gostaria de tirar uma dúvida aqui, preciso implementar com PHP em um sistema o envio e leitura dos dados de um webservice, no caso da CAIXA para emissão de boletos, foi me passado os parametros que precisam ser enviados em SOAP/XML mas de qualquer forma que testo nao me retorna a resposta em XML como me foi mostrado através do software SOAP UI. 

 

Tentei também com CURL mas não obtive exito.

 

Estou testando com new soapclient do php enviando o xml como string e como anexo mas não funciona, tenho o endereço do servidor para testes.

 

Da forma que estou testando é a abaixo:

$mensagem = ".................";

 $curl = curl_init();
        if ( is_resource( $curl ) ){
                curl_setopt( $curl , CURLOPT_HEADER , 0 );
                curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 );
                curl_setopt( $curl , CURLOPT_FOLLOWLOCATION , 1 );
                curl_setopt( $curl , CURLOPT_URL , 'https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl' );
                curl_setopt( $curl , CURLOPT_POST , 1 );
                curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( array( 'mensagem' => $mensagem ) ) );
                $xml = curl_exec( $curl ); $ern = curl_errno( $curl ); $err = curl_error( $curl );
                curl_close( $curl );
                if ( (bool) $ern ){
                                echo 'Opz, ocorreu um erro[' , $ern , ']: ' , $err;
                } else {
                                $DadosEnvio= simplexml_load_string($xml);
                                echo ($DadosEnvio->asXML())."<hr>";
                                
                        }
}

 

Edited by Gabriel Heming
adicionar marcação de código

Share this post


Link to post
Share on other sites

Use diretamente a biblioteca SOAP do PHP.

 

20 horas atrás, estilovirtual disse:

Estou testando com new soapclient do php enviando o xml como string e como anexo mas não funciona, tenho o endereço do servidor para testes.

 

Quando você utiliza SoapClient, não deve se preocupar com o envio de XML (pois, ele nem deve ser enviado) e sim em enviar os parâmtros do web service.

 

Basicamente, se o XML possuir apenas um node, com um valor, você deve enviar esse valor diretamente.

<methodWS> <!-- nome do método -->
    <firstParameter xmlns="">  <!-- primeiro parâmetro -->
    </firstParameter> 
  
    <secondParameter xmlns="">  <!-- segundo parâmetro -->
    </secondParameter> 
</methodWS>

Uso:

$response = $cliente->methodWS("primeiro parâmetro" , "segundo parâmetro");

E, caso um nó possui um nó interno, pode-se utilizar um array, stdClass ou uma classe mapeada.

 

No link abaixo há um exemplo um pouco mais complexo.

 

 

Edited by Gabriel Heming
complementar resposta.

Share this post


Link to post
Share on other sites

Olá Gabriel bom dia, obrigado pela resposta. Já me ajudou bastante, mas como não mexo muito com este tipo de integração, ainda estou com algumas dúvidas, fiz algumas pesquisas e veja se estou no caminho certo:

 

Baseado nisso que você falou se entendo corretamente, preciso passar os parametros como array correto?

 

Pesquisando aqui a respeito com soapclient, estava testando com o código abaixo:

 

<?php
require_once('lib/nusoap.php');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$useCURL = isset($_POST['usecurl']) ? $_POST['usecurl'] : '0';
//$client = new nusoap_client("https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo", false,$proxyhost, $proxyport, $proxyusername, $proxypassword);
$client = new nusoap_client("https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo", false);
$err = $client->getError();
if ($err) {
	echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
	echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
	exit();
}
$client->setUseCurl($useCURL);
$client->soap_defencoding = 'UTF-8';

$params = array(
	'versao'=>'1.0',
	'autenticacao'=>'wIXyzrhD7HjlrpCP1xNnq8vFE7ggAGuz/srw1BOtxDY=',
	'operacao'=>'INCLUI_BOLETO',
	'sistema_origem'=>'SIGCB',
	'data_hora'=>'20171129080311'
);
$result = $client->call("INCLUI_BOLETO", $params, "urn:caixa", "urn:caixa");
if ($client->fault) {
	echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>';
} else {
	$err = $client->getError();
	if ($err) {
		echo '<h2>Erro</h2><pre>' . $err . '</pre>';
	} else {
		echo '<h2>Resultado</h2><pre>'; print_r($result); echo '</pre>';
	}
}
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
?>

Neste exemplo, tem alguns parametros a respeito de proxy, ao meu ver nas pesquisas que fiz não precisaria enviar parametros de proxy correto? Então repliquei a linha e mantive uma abaixo sem os parametros de proxy.

 

Nos dados enviados coloquei apenas alguns que o WS pede para verificar a resposta que me é retornada, mas sempre vem erro de proxy.

 

Estou fazendo algo errado? Preciso mesmo passar os dados de proxy ou o WS que tem algum problema na resposta?

 

Alan

Share this post


Link to post
Share on other sites

Não utilize nusoap, utilize Soap. Nusoap foi desenvolvido para o PHP 4, Soap faz parte do PHP 5.


Ao WS, essa é a chamada gerada através do SOAP UI:

Spoiler



<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ext="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo" xmlns:sib="http://caixa.gov.br/sibar">
   <soapenv:Header/>
   <soapenv:Body>
      <ext:SERVICO_ENTRADA>
         <sib:HEADER>
            <VERSAO>?</VERSAO>
            <!--Optional:-->
            <AUTENTICACAO>?</AUTENTICACAO>
            <!--Optional:-->
            <USUARIO_SERVICO>?</USUARIO_SERVICO>
            <!--Optional:-->
            <USUARIO>?</USUARIO>
            <OPERACAO>?</OPERACAO>
            <!--Optional:-->
            <INDICE>?</INDICE>
            <!--Optional:-->
            <SISTEMA_ORIGEM>?</SISTEMA_ORIGEM>
            <!--Optional:-->
            <UNIDADE>?</UNIDADE>
            <!--Optional:-->
            <IDENTIFICADOR_ORIGEM>?</IDENTIFICADOR_ORIGEM>
            <DATA_HORA>?</DATA_HORA>
            <!--Optional:-->
            <ID_PROCESSO>?</ID_PROCESSO>
         </sib:HEADER>
         <DADOS>
            <!--You have a CHOICE of the next 3 items at this level-->
            <INCLUI_BOLETO>
               <CODIGO_BENEFICIARIO>?</CODIGO_BENEFICIARIO>
               <TITULO>
                  <!--Optional:-->
                  <NOSSO_NUMERO>?</NOSSO_NUMERO>
                  <NUMERO_DOCUMENTO>?</NUMERO_DOCUMENTO>
                  <DATA_VENCIMENTO>?</DATA_VENCIMENTO>
                  <VALOR>?</VALOR>
                  <TIPO_ESPECIE>?</TIPO_ESPECIE>
                  <FLAG_ACEITE>?</FLAG_ACEITE>
                  <!--Optional:-->
                  <DATA_EMISSAO>?</DATA_EMISSAO>
                  <JUROS_MORA>
                     <TIPO>?</TIPO>
                     <!--Optional:-->
                     <DATA>?</DATA>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <VALOR>?</VALOR>
                     <PERCENTUAL>?</PERCENTUAL>
                  </JUROS_MORA>
                  <!--Optional:-->
                  <VALOR_ABATIMENTO>?</VALOR_ABATIMENTO>
                  <POS_VENCIMENTO>
                     <ACAO>?</ACAO>
                     <NUMERO_DIAS>?</NUMERO_DIAS>
                  </POS_VENCIMENTO>
                  <CODIGO_MOEDA>?</CODIGO_MOEDA>
                  <PAGADOR>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <CPF>?</CPF>
                     <NOME>?</NOME>
                     <CNPJ>?</CNPJ>
                     <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
                     <!--Optional:-->
                     <ENDERECO>
                        <LOGRADOURO>?</LOGRADOURO>
                        <BAIRRO>?</BAIRRO>
                        <CIDADE>?</CIDADE>
                        <UF>?</UF>
                        <CEP>?</CEP>
                     </ENDERECO>
                  </PAGADOR>
                  <!--Optional:-->
                  <SACADOR_AVALISTA>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <CPF>?</CPF>
                     <NOME>?</NOME>
                     <CNPJ>?</CNPJ>
                     <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
                  </SACADOR_AVALISTA>
                  <!--Optional:-->
                  <MULTA>
                     <DATA>?</DATA>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <VALOR>?</VALOR>
                     <PERCENTUAL>?</PERCENTUAL>
                  </MULTA>
                  <!--Optional:-->
                  <DESCONTOS>
                     <!--1 to 3 repetitions:-->
                     <DESCONTO>
                        <DATA>?</DATA>
                        <!--You have a CHOICE of the next 2 items at this level-->
                        <VALOR>?</VALOR>
                        <PERCENTUAL>?</PERCENTUAL>
                     </DESCONTO>
                  </DESCONTOS>
                  <!--Optional:-->
                  <VALOR_IOF>?</VALOR_IOF>
                  <!--Optional:-->
                  <IDENTIFICACAO_EMPRESA>?</IDENTIFICACAO_EMPRESA>
                  <!--Optional:-->
                  <FICHA_COMPENSACAO>
                     <MENSAGENS>
                        <!--1 to 2 repetitions:-->
                        <MENSAGEM>?</MENSAGEM>
                     </MENSAGENS>
                  </FICHA_COMPENSACAO>
                  <!--Optional:-->
                  <RECIBO_PAGADOR>
                     <MENSAGENS>
                        <!--1 to 4 repetitions:-->
                        <MENSAGEM>?</MENSAGEM>
                     </MENSAGENS>
                  </RECIBO_PAGADOR>
                  <!--Optional:-->
                  <PAGAMENTO>
                     <QUANTIDADE_PERMITIDA>?</QUANTIDADE_PERMITIDA>
                     <TIPO>?</TIPO>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <VALOR_MINIMO>?</VALOR_MINIMO>
                     <VALOR_MAXIMO>?</VALOR_MAXIMO>
                     <PERCENTUAL_MINIMO>?</PERCENTUAL_MINIMO>
                     <PERCENTUAL_MAXIMO>?</PERCENTUAL_MAXIMO>
                  </PAGAMENTO>
               </TITULO>
            </INCLUI_BOLETO>
            <BAIXA_BOLETO>
               <CODIGO_BENEFICIARIO>?</CODIGO_BENEFICIARIO>
               <NOSSO_NUMERO>?</NOSSO_NUMERO>
            </BAIXA_BOLETO>
            <ALTERA_BOLETO>
               <CODIGO_BENEFICIARIO>?</CODIGO_BENEFICIARIO>
               <TITULO>
                  <NOSSO_NUMERO>?</NOSSO_NUMERO>
                  <!--Optional:-->
                  <NUMERO_DOCUMENTO>?</NUMERO_DOCUMENTO>
                  <!--Optional:-->
                  <DATA_VENCIMENTO>?</DATA_VENCIMENTO>
                  <!--Optional:-->
                  <VALOR>?</VALOR>
                  <!--Optional:-->
                  <TIPO_ESPECIE>?</TIPO_ESPECIE>
                  <!--Optional:-->
                  <FLAG_ACEITE>?</FLAG_ACEITE>
                  <!--Optional:-->
                  <JUROS_MORA>
                     <!--Optional:-->
                     <TIPO>?</TIPO>
                     <!--Optional:-->
                     <DATA>?</DATA>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <!--Optional:-->
                     <VALOR>?</VALOR>
                     <!--Optional:-->
                     <PERCENTUAL>?</PERCENTUAL>
                  </JUROS_MORA>
                  <!--Optional:-->
                  <VALOR_ABATIMENTO>?</VALOR_ABATIMENTO>
                  <!--Optional:-->
                  <POS_VENCIMENTO>
                     <!--Optional:-->
                     <ACAO>?</ACAO>
                     <!--Optional:-->
                     <NUMERO_DIAS>?</NUMERO_DIAS>
                  </POS_VENCIMENTO>
                  <!--Optional:-->
                  <PAGADOR>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <!--Optional:-->
                     <NOME>?</NOME>
                     <!--Optional:-->
                     <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
                     <!--Optional:-->
                     <ENDERECO>
                        <!--Optional:-->
                        <LOGRADOURO>?</LOGRADOURO>
                        <!--Optional:-->
                        <BAIRRO>?</BAIRRO>
                        <!--Optional:-->
                        <CIDADE>?</CIDADE>
                        <!--Optional:-->
                        <UF>?</UF>
                        <!--Optional:-->
                        <CEP>?</CEP>
                     </ENDERECO>
                  </PAGADOR>
                  <!--Optional:-->
                  <SACADOR_AVALISTA>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <!--Optional:-->
                     <CPF>?</CPF>
                     <!--Optional:-->
                     <NOME>?</NOME>
                     <!--Optional:-->
                     <CNPJ>?</CNPJ>
                     <!--Optional:-->
                     <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
                  </SACADOR_AVALISTA>
                  <!--Optional:-->
                  <MULTA>
                     <!--Optional:-->
                     <DATA>?</DATA>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <!--Optional:-->
                     <VALOR>?</VALOR>
                     <!--Optional:-->
                     <PERCENTUAL>?</PERCENTUAL>
                  </MULTA>
                  <!--Optional:-->
                  <DESCONTOS>
                     <!--1 to 3 repetitions:-->
                     <DESCONTO>
                        <!--Optional:-->
                        <DATA>?</DATA>
                        <!--You have a CHOICE of the next 2 items at this level-->
                        <!--Optional:-->
                        <VALOR>?</VALOR>
                        <!--Optional:-->
                        <PERCENTUAL>?</PERCENTUAL>
                     </DESCONTO>
                  </DESCONTOS>
                  <!--Optional:-->
                  <VALOR_IOF>?</VALOR_IOF>
                  <!--Optional:-->
                  <IDENTIFICACAO_EMPRESA>?</IDENTIFICACAO_EMPRESA>
                  <!--Optional:-->
                  <FICHA_COMPENSACAO>
                     <MENSAGENS>
                        <!--1 to 2 repetitions:-->
                        <MENSAGEM>?</MENSAGEM>
                     </MENSAGENS>
                  </FICHA_COMPENSACAO>
                  <!--Optional:-->
                  <RECIBO_PAGADOR>
                     <MENSAGENS>
                        <!--1 to 4 repetitions:-->
                        <MENSAGEM>?</MENSAGEM>
                     </MENSAGENS>
                  </RECIBO_PAGADOR>
                  <!--Optional:-->
                  <PAGAMENTO>
                     <!--Optional:-->
                     <QUANTIDADE_PERMITIDA>?</QUANTIDADE_PERMITIDA>
                     <!--Optional:-->
                     <TIPO>?</TIPO>
                     <!--You have a CHOICE of the next 2 items at this level-->
                     <!--Optional:-->
                     <VALOR_MINIMO>?</VALOR_MINIMO>
                     <!--Optional:-->
                     <VALOR_MAXIMO>?</VALOR_MAXIMO>
                     <!--Optional:-->
                     <PERCENTUAL_MINIMO>?</PERCENTUAL_MINIMO>
                     <!--Optional:-->
                     <PERCENTUAL_MAXIMO>?</PERCENTUAL_MAXIMO>
                  </PAGAMENTO>
               </TITULO>
            </ALTERA_BOLETO>
         </DADOS>
      </ext:SERVICO_ENTRADA>
   </soapenv:Body>
</soapenv:Envelope>


 

 

A seguinte parte do XML é padrão:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ext="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo" xmlns:sib="http://caixa.gov.br/sibar">
   <soapenv:Header/>
   <soapenv:Body>
      
   </soapenv:Body>
</soapenv:Envelope>

Logo em seguida existe o parâmetro único do método (SERVICO_ENTRADA) e não há menção ao nome do método. Isso é porque o WSDL é do estilo Document e Literal. Para saber um pouco mais: 

https://www.ibm.com/developerworks/library/ws-whichwsdl/

https://stackoverflow.com/questions/9062475/what-is-the-difference-between-document-style-and-rpc-style-communication

 

Dessa forma, você deve passar apenas um parâmetro seguindo a estrutura de atributos dele.

 

Spoiler

<ext:SERVICO_ENTRADA>
	 <sib:HEADER>
		<VERSAO>?</VERSAO>
		<!--Optional:-->
		<AUTENTICACAO>?</AUTENTICACAO>
		<!--Optional:-->
		<USUARIO_SERVICO>?</USUARIO_SERVICO>
		<!--Optional:-->
		<USUARIO>?</USUARIO>
		<OPERACAO>?</OPERACAO>
		<!--Optional:-->
		<INDICE>?</INDICE>
		<!--Optional:-->
		<SISTEMA_ORIGEM>?</SISTEMA_ORIGEM>
		<!--Optional:-->
		<UNIDADE>?</UNIDADE>
		<!--Optional:-->
		<IDENTIFICADOR_ORIGEM>?</IDENTIFICADOR_ORIGEM>
		<DATA_HORA>?</DATA_HORA>
		<!--Optional:-->
		<ID_PROCESSO>?</ID_PROCESSO>
	 </sib:HEADER>
	 <DADOS>
		<!--You have a CHOICE of the next 3 items at this level-->
		<INCLUI_BOLETO>
		   <CODIGO_BENEFICIARIO>?</CODIGO_BENEFICIARIO>
		   <TITULO>
			  <!--Optional:-->
			  <NOSSO_NUMERO>?</NOSSO_NUMERO>
			  <NUMERO_DOCUMENTO>?</NUMERO_DOCUMENTO>
			  <DATA_VENCIMENTO>?</DATA_VENCIMENTO>
			  <VALOR>?</VALOR>
			  <TIPO_ESPECIE>?</TIPO_ESPECIE>
			  <FLAG_ACEITE>?</FLAG_ACEITE>
			  <!--Optional:-->
			  <DATA_EMISSAO>?</DATA_EMISSAO>
			  <JUROS_MORA>
				 <TIPO>?</TIPO>
				 <!--Optional:-->
				 <DATA>?</DATA>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <VALOR>?</VALOR>
				 <PERCENTUAL>?</PERCENTUAL>
			  </JUROS_MORA>
			  <!--Optional:-->
			  <VALOR_ABATIMENTO>?</VALOR_ABATIMENTO>
			  <POS_VENCIMENTO>
				 <ACAO>?</ACAO>
				 <NUMERO_DIAS>?</NUMERO_DIAS>
			  </POS_VENCIMENTO>
			  <CODIGO_MOEDA>?</CODIGO_MOEDA>
			  <PAGADOR>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <CPF>?</CPF>
				 <NOME>?</NOME>
				 <CNPJ>?</CNPJ>
				 <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
				 <!--Optional:-->
				 <ENDERECO>
					<LOGRADOURO>?</LOGRADOURO>
					<BAIRRO>?</BAIRRO>
					<CIDADE>?</CIDADE>
					<UF>?</UF>
					<CEP>?</CEP>
				 </ENDERECO>
			  </PAGADOR>
			  <!--Optional:-->
			  <SACADOR_AVALISTA>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <CPF>?</CPF>
				 <NOME>?</NOME>
				 <CNPJ>?</CNPJ>
				 <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
			  </SACADOR_AVALISTA>
			  <!--Optional:-->
			  <MULTA>
				 <DATA>?</DATA>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <VALOR>?</VALOR>
				 <PERCENTUAL>?</PERCENTUAL>
			  </MULTA>
			  <!--Optional:-->
			  <DESCONTOS>
				 <!--1 to 3 repetitions:-->
				 <DESCONTO>
					<DATA>?</DATA>
					<!--You have a CHOICE of the next 2 items at this level-->
					<VALOR>?</VALOR>
					<PERCENTUAL>?</PERCENTUAL>
				 </DESCONTO>
			  </DESCONTOS>
			  <!--Optional:-->
			  <VALOR_IOF>?</VALOR_IOF>
			  <!--Optional:-->
			  <IDENTIFICACAO_EMPRESA>?</IDENTIFICACAO_EMPRESA>
			  <!--Optional:-->
			  <FICHA_COMPENSACAO>
				 <MENSAGENS>
					<!--1 to 2 repetitions:-->
					<MENSAGEM>?</MENSAGEM>
				 </MENSAGENS>
			  </FICHA_COMPENSACAO>
			  <!--Optional:-->
			  <RECIBO_PAGADOR>
				 <MENSAGENS>
					<!--1 to 4 repetitions:-->
					<MENSAGEM>?</MENSAGEM>
				 </MENSAGENS>
			  </RECIBO_PAGADOR>
			  <!--Optional:-->
			  <PAGAMENTO>
				 <QUANTIDADE_PERMITIDA>?</QUANTIDADE_PERMITIDA>
				 <TIPO>?</TIPO>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <VALOR_MINIMO>?</VALOR_MINIMO>
				 <VALOR_MAXIMO>?</VALOR_MAXIMO>
				 <PERCENTUAL_MINIMO>?</PERCENTUAL_MINIMO>
				 <PERCENTUAL_MAXIMO>?</PERCENTUAL_MAXIMO>
			  </PAGAMENTO>
		   </TITULO>
		</INCLUI_BOLETO>
		<BAIXA_BOLETO>
		   <CODIGO_BENEFICIARIO>?</CODIGO_BENEFICIARIO>
		   <NOSSO_NUMERO>?</NOSSO_NUMERO>
		</BAIXA_BOLETO>
		<ALTERA_BOLETO>
		   <CODIGO_BENEFICIARIO>?</CODIGO_BENEFICIARIO>
		   <TITULO>
			  <NOSSO_NUMERO>?</NOSSO_NUMERO>
			  <!--Optional:-->
			  <NUMERO_DOCUMENTO>?</NUMERO_DOCUMENTO>
			  <!--Optional:-->
			  <DATA_VENCIMENTO>?</DATA_VENCIMENTO>
			  <!--Optional:-->
			  <VALOR>?</VALOR>
			  <!--Optional:-->
			  <TIPO_ESPECIE>?</TIPO_ESPECIE>
			  <!--Optional:-->
			  <FLAG_ACEITE>?</FLAG_ACEITE>
			  <!--Optional:-->
			  <JUROS_MORA>
				 <!--Optional:-->
				 <TIPO>?</TIPO>
				 <!--Optional:-->
				 <DATA>?</DATA>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <!--Optional:-->
				 <VALOR>?</VALOR>
				 <!--Optional:-->
				 <PERCENTUAL>?</PERCENTUAL>
			  </JUROS_MORA>
			  <!--Optional:-->
			  <VALOR_ABATIMENTO>?</VALOR_ABATIMENTO>
			  <!--Optional:-->
			  <POS_VENCIMENTO>
				 <!--Optional:-->
				 <ACAO>?</ACAO>
				 <!--Optional:-->
				 <NUMERO_DIAS>?</NUMERO_DIAS>
			  </POS_VENCIMENTO>
			  <!--Optional:-->
			  <PAGADOR>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <!--Optional:-->
				 <NOME>?</NOME>
				 <!--Optional:-->
				 <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
				 <!--Optional:-->
				 <ENDERECO>
					<!--Optional:-->
					<LOGRADOURO>?</LOGRADOURO>
					<!--Optional:-->
					<BAIRRO>?</BAIRRO>
					<!--Optional:-->
					<CIDADE>?</CIDADE>
					<!--Optional:-->
					<UF>?</UF>
					<!--Optional:-->
					<CEP>?</CEP>
				 </ENDERECO>
			  </PAGADOR>
			  <!--Optional:-->
			  <SACADOR_AVALISTA>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <!--Optional:-->
				 <CPF>?</CPF>
				 <!--Optional:-->
				 <NOME>?</NOME>
				 <!--Optional:-->
				 <CNPJ>?</CNPJ>
				 <!--Optional:-->
				 <RAZAO_SOCIAL>?</RAZAO_SOCIAL>
			  </SACADOR_AVALISTA>
			  <!--Optional:-->
			  <MULTA>
				 <!--Optional:-->
				 <DATA>?</DATA>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <!--Optional:-->
				 <VALOR>?</VALOR>
				 <!--Optional:-->
				 <PERCENTUAL>?</PERCENTUAL>
			  </MULTA>
			  <!--Optional:-->
			  <DESCONTOS>
				 <!--1 to 3 repetitions:-->
				 <DESCONTO>
					<!--Optional:-->
					<DATA>?</DATA>
					<!--You have a CHOICE of the next 2 items at this level-->
					<!--Optional:-->
					<VALOR>?</VALOR>
					<!--Optional:-->
					<PERCENTUAL>?</PERCENTUAL>
				 </DESCONTO>
			  </DESCONTOS>
			  <!--Optional:-->
			  <VALOR_IOF>?</VALOR_IOF>
			  <!--Optional:-->
			  <IDENTIFICACAO_EMPRESA>?</IDENTIFICACAO_EMPRESA>
			  <!--Optional:-->
			  <FICHA_COMPENSACAO>
				 <MENSAGENS>
					<!--1 to 2 repetitions:-->
					<MENSAGEM>?</MENSAGEM>
				 </MENSAGENS>
			  </FICHA_COMPENSACAO>
			  <!--Optional:-->
			  <RECIBO_PAGADOR>
				 <MENSAGENS>
					<!--1 to 4 repetitions:-->
					<MENSAGEM>?</MENSAGEM>
				 </MENSAGENS>
			  </RECIBO_PAGADOR>
			  <!--Optional:-->
			  <PAGAMENTO>
				 <!--Optional:-->
				 <QUANTIDADE_PERMITIDA>?</QUANTIDADE_PERMITIDA>
				 <!--Optional:-->
				 <TIPO>?</TIPO>
				 <!--You have a CHOICE of the next 2 items at this level-->
				 <!--Optional:-->
				 <VALOR_MINIMO>?</VALOR_MINIMO>
				 <!--Optional:-->
				 <VALOR_MAXIMO>?</VALOR_MAXIMO>
				 <!--Optional:-->
				 <PERCENTUAL_MINIMO>?</PERCENTUAL_MINIMO>
				 <!--Optional:-->
				 <PERCENTUAL_MAXIMO>?</PERCENTUAL_MAXIMO>
			  </PAGAMENTO>
		   </TITULO>
		</ALTERA_BOLETO>
	 </DADOS>
  </ext:SERVICO_ENTRADA>

 

 

 

Dessa forma, você deve criar nós (nodes) conforme os atributos. Isso você pode verificar no link que eu deixei em anexo:

 

De qualquer forma, seria algo do tipo:

$param = new stdClass();

$header = new stdClass();
$header->VERSAO = "1.0";
$header->AUTENTICACAO = "senha";
$header->USUARIO_SERVICO = "usuario";
/** 
demais atributos do header 
**/

//Adiciona os parâmetros de HEADER
$param->HEADER = $header

$dados = new stdClass();

$inclui_boleto = new stdClass();
/** 
dados do atributo INCLUI_BOLETO 
**/

//Adiciona os parâmetros de INCLUI_BOLETO
$dados->INCLUI_BOLETO = $inclui_boleto;

E assim você deve ir criando, cada nó da chamada do XML.

 

Algo que fica evidente, é esta estrutura:

<DADOS>
    <!--You have a CHOICE of the next 3 items at this level-->
    <INCLUI_BOLETO>
        /** atributos **/
    </INCLUI_BOLETO>

    <BAIXA_BOLETO>
        /** atributos **/
    </BAIXA_BOLETO>

    <ALTERA_BOLETO>
        /** atributos **/
    </ALTERA_BOLETO>
</DADOS>

Não importa qual método você utilize, ele terá a estrutura similar, utilizando atributos diferentes para cada método.

 

No final, basta criar o client e realizar a chamada:

$client = new SoapClient("https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl" , ['trace' => 1]);
$compra = $client->INCLUI_BOLETO($params);

 

Share this post


Link to post
Share on other sites

Olá Gabriel boa tarde, obrigado pelas respostas, acredito que com sua ajuda estou progredindo aqui, desculpe toda pertubação.

 

Pesquisando e lendo os tópicos indicados se estou correto, montei da seguinte forma:

 

<?php

$ip = $_SERVER["REMOTE_ADDR"];
$data_hora = date("YmdHms");
$autenticacao = "0000000000000000000000000000000000000000000000000000000";
$autenticacao = base64_encode($autenticacao);
$data_vencimento= date("Ymd");
$data_emissao= date("Ymd");
$data_juros= date("Ymd");

$param = new stdClass();

$servico_entrada = new stdClass();

$header = new stdClass();
$header->VERSAO = "1.0";
$header->AUTENTICACAO = $autenticacao;
$header->USUARIO_SERVICO = "SGCBS02P";
$header->OPERACAO = "INCLUI_BOLETO";
$header->SISTEMA_ORIGEM ="SIGCB";
$header->UNIDADE = "0017";
$header->IDENTIFICADOR_ORIGEM = $ip;
$header->DATA_HORA = $data_hora;
$header->ID_PROCESSO = "0000000";

/**
demais atributos do header
**/

//Adiciona os parâmetros de HEADER
$param->HEADER = $header;

$dados = new stdClass();
$inclui_boleto = new stdClass();
$inclui_boleto->CODIGO_BENEFICIARIO= "0000000";

$inclui_boleto->titulo= new stdClass();

$inclui_boleto->titulo->NOSSO_NUMERO= "00000000000000000";
$inclui_boleto->titulo->NUMERO_DOCUMENTO= "12345678901";
$inclui_boleto->titulo->DATA_VENCIMENTO= $data_vencimento;
$inclui_boleto->titulo->VALOR= "0000000000035.50";
$inclui_boleto->titulo->TITULO_ESPECIE= "99";
$inclui_boleto->titulo->FLAG_ACEITE= "A";
$inclui_boleto->titulo->DATA_EMISSAO= $data_emissao;

$inclui_boleto->titulo->juros_mora = new stdClass();
$inclui_boleto->titulo->juros_mora->TIPO= "VALOR_POR_DIA";
$inclui_boleto->titulo->juros_mora->DATA= $data_juros;
$inclui_boleto->titulo->juros_mora->VALOR= "0000000000001.50";

$inclui_boleto->VALOR_ABATIMENTO= "0000000000000.00";

$inclui_boleto->titulo->pos_vencimento = new stdClass();
$inclui_boleto->titulo->pos_vencimento->ACAO= "PROTESTAR";
$inclui_boleto->titulo->pos_vencimento->NUMERO_DIAS= "30";

$inclui_boleto->CODIGO_MOEDA= "09";

$inclui_boleto->titulo->pagador = new stdClass();
$inclui_boleto->titulo->pagador->CPF= "12345678901";
$inclui_boleto->titulo->pagador->NOME= "NOME DO COMPRADOR";

$inclui_boleto->titulo->pagador->endereco = new stdClass();
$inclui_boleto->titulo->pagador->endereco->LOGRADOURO= "ENDERECO";
$inclui_boleto->titulo->pagador->endereco->BAIRRO= "BAIRRO";
$inclui_boleto->titulo->pagador->endereco->CIDADE= "SAO PAULO";
$inclui_boleto->titulo->pagador->endereco->UF= "SP";
$inclui_boleto->titulo->pagador->endereco->CEP= "01447777";

$inclui_boleto->titulo->sacador = new stdClass();
$inclui_boleto->titulo->sacador->CNPJ= "12345678901111";
$inclui_boleto->titulo->sacador->RAZAO_SOCIAL= "NOME DA EMPRESA";

$inclui_boleto->titulo->pagamento = new stdClass();
$inclui_boleto->titulo->pagamento->QUANTIDADE_PERMITIDA= "1";
$inclui_boleto->titulo->pagamento->TIPO= "NAO_ACEITA_VALOR_DIVERGENTE";
$inclui_boleto->titulo->pagamento->VALOR_MINIMO= "0000000000000.00";
$inclui_boleto->titulo->pagamento->VALOR_MAXIMO= "0000000000000.00";

/**
dados do atributo INCLUI_BOLETO
**/

//Adiciona os parâmetros de INCLUI_BOLETO
$dados->INCLUI_BOLETO = $inclui_boleto;

//AQUI TENTEI ENVIAR COM O PARAMETRO TRACE QUE VOCE DEIXOU MAS NÃO DEU CERTO, TENTEI DE ALGUMAS FORMAS E NAO CONSEGUI RESOLVER, AI RETIREI.

//$client = new SoapClient("https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl" , ['trace' => 1]);
$client = new SoapClient("https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl");
$compra = $client->INCLUI_BOLETO($params);

echo var_dump($compra);

?>

 

Estou colocando alguns dados com zeros mas tenho os dados, apenas de exemplo.

 

Me vem o retorno:

 

object(stdClass)#14 (5) { ["HEADER"]=> object(stdClass)#15 (3) { ["VERSAO"]=> string(3) "1.0" ["OPERACAO"]=> string(12) "SEM_OPERACAO" ["DATA_HORA"]=> string(14) "20171201121704" } ["COD_RETORNO"]=> string(2) "X5" ["ORIGEM_RETORNO"]=> string(15) "BROKER-SPPFCJD2" ["MSG_RETORNO"]=> string(38) "(BK76) ERRO NA FORMATACAO DA MENSAGEM." ["DADOS"]=> object(stdClass)#16 (1) { ["EXCECAO"]=> string(1403) "EXCECAO NO BAR_MANUTENCAO_COBRANCA_BANCARIA_WS.SOAPInput_Empresas_Externas. DETALHES: ParserException(1) - Funcao: ImbDataFlowNode::createExceptionList, Texto Excecao: Node throwing exception, Texto de Insercao(1) - BAR_MANUTENCAO_COBRANCA_BANCARIA_WS.SOAPInput_Empresas_Externas.ParserException(2) - Funcao: ImbSOAPInputNode::validateData, Texto Excecao: Error occurred in ImbSOAPInputHelper::validateSOAPInput(), Texto de Insercao(1) - BAR_MANUTENCAO_COBRANCA_BANCARIA_WS.SOAPInput_Empresas_Externas.ParserException(3) - Funcao: ImbRootParser::parseNextItem, Texto Excecao: Exception whilst parsing.ParserException(4) - Funcao: ImbSOAPParser::createSoapShapedTree, Texto Excecao: problem creating SOAP tree from bitstream.ParserException(5) - Funcao: ImbXMLNSCParser::parseLastChild, Texto Excecao: XML Parsing Errors have occurred.ParserException(6) - Funcao: ImbXMLNSCDocHandler::handleParseErrors, Texto Excecao: A schema validation error has occurred while parsing the XML document, Texto de Insercao(1) - 5010, Texto de Insercao(2) - 2, Texto de Insercao(3) - 2, Texto de Insercao(4) - 198, Texto de Insercao(5) - cvc-complex-type.2.4.g: The content of element "SERVICO_ENTRADA" is not complete. Empty tag is not expected since the content type is not 'empty'., Texto de Insercao(6) - /XMLNSC/{http://schemas.xmlsoap.org/soap/envelope/}:Envelope/{http://schemas.xmlsoap.org/soap/envelope/}:Body." } }

 

Estou pesquisando uma forma de quebrar isso para ficar de uma forma melhor de leitura, mas ainda não consegui. Mas olhando os dados o que entendi é:

 

The content of element SERVICO_ENTRADA is not complete. Empty tag is not expected since the content type is not empty ---- e tambem a mensagem de erro na formatação da mensagem.

 

Estou tentando algumas alternativas para descobrir o meu erro aqui.

 

 

Alan

 

Share this post


Link to post
Share on other sites

Provavelmente é porquê você terá que adicionar os demais nodes (BAIXA_BOLETO e ALTERA_BOLETO), pois, eles não estão marcados como opcionais (OPTIONAL).

Share this post


Link to post
Share on other sites

Boa tarde, estava ainda fazendo alguns testes ao inves do metodo INCLUI_BOLETO o metodo CONSULTA_BOLETO que leva menos dados e não da certo, e notei aqui um detalhe:

 

$compra = $client->INCLUI_BOLETO($params);

Não temos esta variavel params no código. Temos param, mas se mando como param me retorna erro:

object has no DADOS property

 

Acredito que deva ser algo simples, mas estou tentando aqui mas não estou conseguindo resolver....

 

Alan

Share this post


Link to post
Share on other sites

Como falei anteriormente, não importa qual método você utilize, o objeto é o mesmo. Ou seja, terá que ter todas as propriedades do WSDL que não estejam marcadas como OPTIONAL.

 

7 minutos atrás, estilovirtual disse:

Não temos esta variavel params no código. Temos param, mas se mando como param me retorna erro:

object has no DADOS property

 

O nome da variável que eu coloquei é apenas um exemplo, o qual eu não testei previamente, você sempre deve adequar ao seu código.

Share this post


Link to post
Share on other sites

Bom dia. Desculpe foi falha minha não ter visto esta variavel, não quis dizer o contrário não. Continuo aqui quebrando a cabeça, fiz algumas modificações, não sei se melhorou ou piorou, estou tendo um outro retorno aqui:

 

Expecting element with local name "HEADER" but saw "HEADER"

 

Dei um var_dump na variavel $param para verificar o que estava sendo enviado e o parametro HEADER esta sendo enviado normalmente.

 

object(stdClass)#1 (2) { ["HEADER"]=> object(stdClass)#3 (9) { ["VERSAO"]=> string(3) "1.0" ["AUTENTICACAO"]=> string(84) "MDU3NDU2NjAwMDAwMDAwMDAwMDAwMDAwMTUxMjIwMTcwMDAwMDAwMDAwMDM1NDcyMTI5NTkwMTAwMDEyOA==" ["USUARIO_SERVICO"]=> string(8) "SGCBS02P" ["OPERACAO"]=> string(13) "INCLUI_BOLETO" ["SISTEMA_ORIGEM"]=> string(5) "SIGCB" ["UNIDADE"]=> string(4) "0017" ["IDENTIFICADOR_ORIGEM"]=> string(13) "179.54.186.62" ["DATA_HORA"]=> string(14) "20171205081254" ["ID_PROCESSO"]=> string(6) "574566" } ["DADOS"]=> object(stdClass)#4 (1) { ["inclui_boleto"]=> object(stdClass)#5 (6) { ["CODIGO_BENEFICIARIO"]=> string(6) "1234567" ["titulo"]=> object(stdClass)#6 (16) { ["NOSSO_NUMERO"]=> string(17) "00000000000000000" ["NUMERO_DOCUMENTO"]=> string(11) "12345678901" ["DATA_VENCIMENTO"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000035.50" ["TIPO_ESPECIE"]=> string(2) "99" ["FLAG_ACEITE"]=> string(1) "A" ["DATA_EMISSAO"]=> string(8) "20171205" ["juros_mora"]=> object(stdClass)#7 (3) { ["TIPO"]=> string(13) "VALOR_POR_DIA" ["DATA"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000001.50" } ["pos_vencimento"]=> object(stdClass)#8 (2) { ["ACAO"]=> string(9) "PROTESTAR" ["NUMERO_DIAS"]=> string(2) "30" } ["pagador"]=> object(stdClass)#9 (5) { ["CPF"]=> string(11) "12345678901" ["NOME"]=> string(23) "NOME DO ALUNO COMPRADOR" ["CNPJ"]=> string(0) "" ["RAZAO_SOCIAL"]=> string(0) "" ["endereco"]=> object(stdClass)#10 (5) { ["LOGRADOURO"]=> string(17) "ENDERECO NUMERO 01" ["BAIRRO"]=> string(10) "BAIRRO" ["CIDADE"]=> string(9) "SAO PAULO" ["UF"]=> string(2) "SP" ["CEP"]=> string(8) "01777888" } } ["sacador_avalista"]=> object(stdClass)#11 (4) { ["CPF"]=> string(0) "" ["NOME"]=> string(0) "" ["CNPJ"]=> string(14) "05281025000111" ["RAZAO_SOCIAL"]=> string(19) "NOME DA EMPRESA" } ["multa"]=> object(stdClass)#12 (2) { ["DATA"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000014.15" } ["descontos"]=> object(stdClass)#13 (1) { ["desconto"]=> object(stdClass)#14 (2) { ["DATA"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000005.14" } } ["ficha_compensacao"]=> object(stdClass)#15 (1) { ["mensagens"]=> object(stdClass)#16 (1) { ["MENSAGEM"]=> string(0) "" } } ["recibo_pagador"]=> object(stdClass)#17 (1) { ["mensagens"]=> object(stdClass)#18 (1) { ["MENSAGEM"]=> string(0) "" } } ["pagamento"]=> object(stdClass)#19 (4) { ["QUANTIDADE_PERMITIDA"]=> string(1) "1" ["TIPO"]=> string(27) "NAO_ACEITA_VALOR_DIVERGENTE" ["VALOR_MINIMO"]=> string(16) "0000000000000.00" ["VALOR_MAXIMO"]=> string(16) "0000000000000.00" } } ["VALOR_ABATIMENTO"]=> string(16) "0000000000000.00" ["CODIGO_MOEDA"]=> string(2) "09" ["VALOR_IOF"]=> string(0) "" ["IDENTIFICACAO_EMPRESA"]=> string(0) "" } } } 

 

Alan

Share this post


Link to post
Share on other sites

Adicione seu código completo, para verificar se está faltando algo.

Share this post


Link to post
Share on other sites

Olá Gabriel, boa tarde, segue abaixo o código completo:

 

$ip = $_SERVER["REMOTE_ADDR"];
$data_hora = date("YmdHms");
$autenticacao = "0587447000000000000000001512201700000000000354707478520000100";
$autenticacao = base64_encode($autenticacao);
$data_vencimento= date("Ymd");
$data_emissao= date("Ymd");
$data_juros= date("Ymd");
$data_multa= date("Ymd");

$param = new stdClass();

$servico_entrada = new stdClass();

$header = new stdClass();
$header->VERSAO = "1.0";
$header->AUTENTICACAO = $autenticacao;
$header->USUARIO_SERVICO = "SGCBS02P";
$header->OPERACAO = "INCLUI_BOLETO";
$header->SISTEMA_ORIGEM ="SIGCB";
$header->UNIDADE = "0017";
$header->IDENTIFICADOR_ORIGEM = $ip;
$header->DATA_HORA = $data_hora;
$header->ID_PROCESSO = "574566";

$param->HEADER = $header;

$dados = new stdClass();
$dados->inclui_boleto = new stdClass();
$dados->inclui_boleto->CODIGO_BENEFICIARIO= "574566";

$dados->inclui_boleto->titulo= new stdClass();
$dados->inclui_boleto->titulo->NOSSO_NUMERO= "00000000000000000";
$dados->inclui_boleto->titulo->NUMERO_DOCUMENTO= "12345678901";
$dados->inclui_boleto->titulo->DATA_VENCIMENTO= $data_vencimento;
$dados->inclui_boleto->titulo->VALOR= "0000000000035.50";
$dados->inclui_boleto->titulo->TIPO_ESPECIE= "99";
$dados->inclui_boleto->titulo->FLAG_ACEITE= "A";
$dados->inclui_boleto->titulo->DATA_EMISSAO= $data_emissao;

$dados->inclui_boleto->titulo->juros_mora = new stdClass();
$dados->inclui_boleto->titulo->juros_mora->TIPO= "VALOR_POR_DIA";
$dados->inclui_boleto->titulo->juros_mora->DATA= $data_juros;
$dados->inclui_boleto->titulo->juros_mora->VALOR= "0000000000001.50";

$dados->inclui_boleto->VALOR_ABATIMENTO= "0000000000000.00";

$dados->inclui_boleto->titulo->pos_vencimento = new stdClass();
$dados->inclui_boleto->titulo->pos_vencimento->ACAO= "PROTESTAR";
$dados->inclui_boleto->titulo->pos_vencimento->NUMERO_DIAS= "30";

$dados->inclui_boleto->CODIGO_MOEDA= "09";

$dados->inclui_boleto->titulo->pagador = new stdClass();
$dados->inclui_boleto->titulo->pagador->CPF= "12345678901";
$dados->inclui_boleto->titulo->pagador->NOME= "NOME DO ALUNO COMPRADOR";
$dados->inclui_boleto->titulo->pagador->CNPJ= "";
$dados->inclui_boleto->titulo->pagador->RAZAO_SOCIAL= "";

$dados->inclui_boleto->titulo->pagador->endereco = new stdClass();
$dados->inclui_boleto->titulo->pagador->endereco->LOGRADOURO= "ENDERECO - NUMERO";
$dados->inclui_boleto->titulo->pagador->endereco->BAIRRO= "BAIRRO";
$dados->inclui_boleto->titulo->pagador->endereco->CIDADE= "SAO PAULO";
$dados->inclui_boleto->titulo->pagador->endereco->UF= "SP";
$dados->inclui_boleto->titulo->pagador->endereco->CEP= "08445210";

$dados->inclui_boleto->titulo->sacador_avalista = new stdClass();
$dados->inclui_boleto->titulo->sacador_avalista->CPF= "";
$dados->inclui_boleto->titulo->sacador_avalista->NOME= "";
$dados->inclui_boleto->titulo->sacador_avalista->CNPJ= "07458410000155";
$dados->inclui_boleto->titulo->sacador_avalista->RAZAO_SOCIAL= "NOME DA EMPRESA";

$dados->inclui_boleto->titulo->multa= new stdClass();
$dados->inclui_boleto->titulo->multa->DATA= $data_multa;
$dados->inclui_boleto->titulo->multa->VALOR= "0000000000014.15";

$dados->inclui_boleto->titulo->descontos= new stdClass();
$dados->inclui_boleto->titulo->descontos->desconto= new stdClass();
$dados->inclui_boleto->titulo->descontos->desconto->DATA= $data_multa;
$dados->inclui_boleto->titulo->descontos->desconto->VALOR= "0000000000005.14";


$dados->inclui_boleto->titulo->ficha_compensacao = new stdClass();
$dados->inclui_boleto->titulo->ficha_compensacao->mensagens = new stdClass();
$dados->inclui_boleto->titulo->ficha_compensacao->mensagens->MENSAGEM= "";

$dados->inclui_boleto->titulo->recibo_pagador= new stdClass();
$dados->inclui_boleto->titulo->recibo_pagador->mensagens= new stdClass();
$dados->inclui_boleto->titulo->recibo_pagador->mensagens->MENSAGEM= "";

$dados->inclui_boleto->titulo->pagamento = new stdClass();
$dados->inclui_boleto->titulo->pagamento->QUANTIDADE_PERMITIDA= "1";
$dados->inclui_boleto->titulo->pagamento->TIPO= "NAO_ACEITA_VALOR_DIVERGENTE";
$dados->inclui_boleto->titulo->pagamento->VALOR_MINIMO= "0000000000000.00";
$dados->inclui_boleto->titulo->pagamento->VALOR_MAXIMO= "0000000000000.00";

$param->DADOS = $dados;

$client = new SoapClient("https://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl");
$compra = $client->INCLUI_BOLETO($param);

echo "<BR><BR>Resultado<BR><BR><hr>";

echo var_dump($compra);

 

Share this post


Link to post
Share on other sites
On 12/5/2017 at 8:34 AM, estilovirtual said:

Bom dia. Desculpe foi falha minha não ter visto esta variavel, não quis dizer o contrário não. Continuo aqui quebrando a cabeça, fiz algumas modificações, não sei se melhorou ou piorou, estou tendo um outro retorno aqui:

 

Expecting element with local name "HEADER" but saw "HEADER"

 

Dei um var_dump na variavel $param para verificar o que estava sendo enviado e o parametro HEADER esta sendo enviado normalmente.

 


object(stdClass)#1 (2) { ["HEADER"]=> object(stdClass)#3 (9) { ["VERSAO"]=> string(3) "1.0" ["AUTENTICACAO"]=> string(84) "MDU3NDU2NjAwMDAwMDAwMDAwMDAwMDAwMTUxMjIwMTcwMDAwMDAwMDAwMDM1NDcyMTI5NTkwMTAwMDEyOA==" ["USUARIO_SERVICO"]=> string(8) "SGCBS02P" ["OPERACAO"]=> string(13) "INCLUI_BOLETO" ["SISTEMA_ORIGEM"]=> string(5) "SIGCB" ["UNIDADE"]=> string(4) "0017" ["IDENTIFICADOR_ORIGEM"]=> string(13) "179.54.186.62" ["DATA_HORA"]=> string(14) "20171205081254" ["ID_PROCESSO"]=> string(6) "574566" } ["DADOS"]=> object(stdClass)#4 (1) { ["inclui_boleto"]=> object(stdClass)#5 (6) { ["CODIGO_BENEFICIARIO"]=> string(6) "1234567" ["titulo"]=> object(stdClass)#6 (16) { ["NOSSO_NUMERO"]=> string(17) "00000000000000000" ["NUMERO_DOCUMENTO"]=> string(11) "12345678901" ["DATA_VENCIMENTO"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000035.50" ["TIPO_ESPECIE"]=> string(2) "99" ["FLAG_ACEITE"]=> string(1) "A" ["DATA_EMISSAO"]=> string(8) "20171205" ["juros_mora"]=> object(stdClass)#7 (3) { ["TIPO"]=> string(13) "VALOR_POR_DIA" ["DATA"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000001.50" } ["pos_vencimento"]=> object(stdClass)#8 (2) { ["ACAO"]=> string(9) "PROTESTAR" ["NUMERO_DIAS"]=> string(2) "30" } ["pagador"]=> object(stdClass)#9 (5) { ["CPF"]=> string(11) "12345678901" ["NOME"]=> string(23) "NOME DO ALUNO COMPRADOR" ["CNPJ"]=> string(0) "" ["RAZAO_SOCIAL"]=> string(0) "" ["endereco"]=> object(stdClass)#10 (5) { ["LOGRADOURO"]=> string(17) "ENDERECO NUMERO 01" ["BAIRRO"]=> string(10) "BAIRRO" ["CIDADE"]=> string(9) "SAO PAULO" ["UF"]=> string(2) "SP" ["CEP"]=> string(8) "01777888" } } ["sacador_avalista"]=> object(stdClass)#11 (4) { ["CPF"]=> string(0) "" ["NOME"]=> string(0) "" ["CNPJ"]=> string(14) "05281025000111" ["RAZAO_SOCIAL"]=> string(19) "NOME DA EMPRESA" } ["multa"]=> object(stdClass)#12 (2) { ["DATA"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000014.15" } ["descontos"]=> object(stdClass)#13 (1) { ["desconto"]=> object(stdClass)#14 (2) { ["DATA"]=> string(8) "20171205" ["VALOR"]=> string(16) "0000000000005.14" } } ["ficha_compensacao"]=> object(stdClass)#15 (1) { ["mensagens"]=> object(stdClass)#16 (1) { ["MENSAGEM"]=> string(0) "" } } ["recibo_pagador"]=> object(stdClass)#17 (1) { ["mensagens"]=> object(stdClass)#18 (1) { ["MENSAGEM"]=> string(0) "" } } ["pagamento"]=> object(stdClass)#19 (4) { ["QUANTIDADE_PERMITIDA"]=> string(1) "1" ["TIPO"]=> string(27) "NAO_ACEITA_VALOR_DIVERGENTE" ["VALOR_MINIMO"]=> string(16) "0000000000000.00" ["VALOR_MAXIMO"]=> string(16) "0000000000000.00" } } ["VALOR_ABATIMENTO"]=> string(16) "0000000000000.00" ["CODIGO_MOEDA"]=> string(2) "09" ["VALOR_IOF"]=> string(0) "" ["IDENTIFICACAO_EMPRESA"]=> string(0) "" } } } 

 

Alan

 

Bom dia,

 

Resolvi esse erro da seguinte forma:

$authentication = new stdClass();
$authentication->VERSAO = '1.0';
...
$header = new SoapVar($authentication, SOAP_ENC_OBJECT, null, null, 'HEADER', 'http://caixa.gov.br/sibar');
$dados->HEADER = $header;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • By vmmh
      Alguma alma caridosa que me possa ajudar ?
      há dias que ando com este problema e não consigo resolver. Ficaria eternamente grato se alguém pudesse ajudar
       
      o codigo abaixo em localhost funciona na perfeição , mas em produção , no lado do servidor , nada... HTTP error 500.
      o pedido que estou a fazer está noutro dominio com porta 81 e no meu dominio uso certificado de segurança. Será por aí?
      de qualquer forma o wsdl está   aqui:
       
       
      $client = new SoapClient('https://dekrainspecoes.pt/acp/PROD_CustomUI_ACP_Member_Validation_WS.WSDL');
      $result = $client->QueryByNumCartao(array('N_Cartao' => "705684011673122085"));
      if (!empty($result->QueryByNumCartao_Output->Cartao_Ativo)) {
       
          echo 'The userId : '.$result->QueryByNumCartao_Output ->Pessoa_ID;
      }
       
      $JSON = json_encode($result);
    • By jotapems
      Bom dia,
      estou tentando criar uma integração a um webservice utilizando o seguinte link do serviço:
      https://wwwh.cnj.jus.br/pjemni-2x/intercomunicacao?wsdl
       
      Para tanto, fiz o seguinte código-teste:
       
      <?php $client = new SoapClient("https://wwwh.cnj.jus.br/pjemni-2x/intercomunicacao?wsdl"); $function = "consultarProcesso"; $arguments = array ( "idConsultante" => "xxx", "senhaConsultante" => "xxx", "numeroProcesso" => "50243604120198130702", "movimentos" => true ); $result = $client->__soapCall($function, $arguments); print $result; ?>  
      Contudo, ao executar o código, recebo o seguinte erro:
      Fatal error: Uncaught SoapFault exception: [soap:Client] Message part param1 was not recognized. (Does it exist in service WSDL?) in C:\xampp\htdocs\wstest\test.php:13 Stack trace: #0 C:\xampp\htdocs\wstest\test.php(13): SoapClient->__soapCall('consultarProces...', Array) #1 {main} thrown in C:\xampp\htdocs\wstest\test.php on line 13  
      Se alguém puder me ajudar, agradeço muito!!
    • By Gilberto Jr
      Boa tarde.
       
      Eu esto com um probleminha que eu não estou conseguindo resolver.
       
      Estou lendo um json atraves de uma webservice https://jsonplaceholder.typicode.com/photos atraves do codigo abaixo.
       
      <html> <head> <title>Teste</title> <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script> <!-- Adicionando Javascript --> <script type="text/javascript" > $(document).ready(function(){ $("#search").click(function(){ $.ajax({ type: "GET", dataType: "json", url: "https://jsonplaceholder.typicode.com/photos", success: function(data) { for (var i in data) { //vai passar por todos os objetos dentro do array $("#title").text(data[i]["title"]); $("#id").text(data[i]["id"]); $("#albumId").text(data[i]["albumId"]); $("#thumbnailUrl").attr("src",data[i]["thumbnailUrl"]); $("#url").attr("src",data[i]["url"]); } } }); }) }); // END Function, END ready </script> </head> <body> <input type="button" placeholder="Busca" id="search" value="Buscar"> <section> <div class="container"> <div class="row" id="content"> <br/> <div id="id"></div><br/> <div id="albumId"></div><br/> <div id="title"></div><br/> <img src="" id="thumbnailUrl"><br/> <img src="" id="url"><br/> </div> </div> </section> </body> </html> Eu estou até conseguindo trazer as informações. Porem vem o ultimo dado do JSON, 
       
      E eu também, tenho que mostrar todas as informações do arquivo JSON. Fazer um for para mostrar todos os dados na tela.
       
      Mas eu não estou conseguindo, poderia me ajudar?
       
      Att;
      Gilberto Jr
    • By s3c0
      Fala pessoal,
       
      estou com um probleminha com uma integração, onde preciso ler um resposta JSON em ASP Clássico.
       
      a resposta é
       
      {"id":1,"name":"PAC","price":"45.65","custom_price":"45.65","discount":"7.41","currency":"R$","delivery_time":8,"delivery_range":{"min":8,"max":8},"custom_delivery_time":8,"custom_delivery_range":{"min":8,"max":8},"packages":{"price":"45.65","discount":"7.41","format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":1,"name":"Correios","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/correios.png"}},{"id":2,"name":"EXPRESSO","price":"68.51","custom_price":"68.51","discount":"11.95","currency":"R$","delivery_time":5,"delivery_range":{"min":5,"max":5},"custom_delivery_time":5,"custom_delivery_range":{"min":5,"max":5},"packages":{"price":"68.51","discount":"11.95","format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":1,"name":"Correios","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/correios.png"}},{"id":3,"name":".Package","price":"33.51","custom_price":"33.51","discount":"15.58","currency":"R$","delivery_time":6,"delivery_range":{"min":5,"max":6},"custom_delivery_time":6,"custom_delivery_range":{"min":5,"max":6},"packages":{"format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":2,"name":"JadLog","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/jadlog.png"}},{"id":4,"name":".Com","price":"32.63","custom_price":"32.63","discount":"26.48","currency":"R$","delivery_time":5,"delivery_range":{"min":4,"max":5},"custom_delivery_time":5,"custom_delivery_range":{"min":4,"max":5},"packages":{"format":"box","dimensions":{"height":20,"width":20,"length":20},"weight":"1.00","insurance_value":"1000.00","products":{"id":"teste1","quantity":1}},"additional_services":{"receipt":true,"own_hand":false,"collect":false},"company":{"id":2,"name":"JadLog","picture":"https:\/\/sandbox.melhorenvio.com.br\/images\/shipping-companies\/jadlog.png"}}  
      Tenho a seguinte página para receber essa resposta
       
      <!--#include file="includes/json2.asp"--> <% Dim objXML, Result Set objXML = Server.CreateObject("Microsoft.XMLHTTP") On Error Resume Next For i = 1 To 3 objXML.Open "POST" , url, False , "", "" objXML.setRequestHeader "content-type", "application/json" objXML.setRequestHeader "accept", "application/json" objXML.setRequestHeader "authorization", "Bearer " & Bearer objXML.Send variavel_json If Err.Number = 0 Then Result = objXML.ResponseText end if Exit For Next Set objXML = Nothing Result = replace(replace(Result,"[",""),"]","") a=Split(Result,".png""}},") For Each x In a set x = JSON.parse(Result) Response.write(x.name & vbNewline) Response.write(x.price & vbNewline) Response.write(x.delivery_time & vbNewline) Response.write(x.company.name & vbNewline) Next %> O que ocorre, é que imprimi somente a última linha
       
      Print
      .Com 32.63 5 JadLog .Com 32.63 5 JadLog .Com 32.63 5 JadLog .Com 32.63 5 JadLog  
       
      Alguém poderia me dizer onde estou errando?
       
      Agradeço a atenção de todos!
       
      Abraços
×

Important Information

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