Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou iniciando uma integração com o SIGEP dos Correios em PHP.
E o primeiro passo, preciso me certificar que estou conseguindo realizar uma consulta no ambiente de homologação para seguir com os demais métodos.
O manual é este: http://www.corporativo.correios.com.br/encomendas/sigepweb/doc/Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf
Estou iniciando pelo método: verificaDisponibilidadeServico
Estou utilizando a URL informada no manual e o XML do exemplo, que são:
URL
$sg_Url = 'https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl';
**XML**
$xml .= '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<soapenv:Envelope>';
$xml .= '<soapenv:Header>';
$xml .= '<soapenv:Body>';
$xml .= '<cli:verificaDisponibilidadeServico>';
$xml .= '<codAdministrativo>08082650</codAdministrativo>';
$xml .= '<numeroServico>40215</numeroServico>';
$xml .= '<cepOrigem>70002900</cepOrigem>';
$xml .= '<cepDestino>81350120</cepDestino>';
$xml .= '<usuario>sigep</usuario>';
$xml .= '<senha>n5f9t8</senha>';
$xml .= '</cli:verificaDisponibilidadeServico>';
$xml .= '</soapenv:Body>';
$xml .= '</soapenv:Envelope>';
$xml .= '</soapenv:Envelope>';
Criei uma função para enviar "POST".
$retorno = executaGeral($sg_Url, $xml);
function executaGeral($url, $data){
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_POST, count($data));
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($curl_handle);
curl_close($curl_handle);
return $response;
}
**Mas, retorna este erro:**
soap:ClientError reading XMLStreamReader.
O XML, é assim que devo enviar?
Estou realizando algum procedimento incorreto?
Obrigado desde já.Entendi.
Dei uma olhada no manual, mas não consegui entender muito.
Como funciona este procedimento?
Eu consigo executar uma URL com seu XML com SOAP com um código como o que fiz acima?
Ou é mais complexo, com mais bibliotecas?
De uma estudada no SoapClient, mas é basicamente:
$client = new SoapClient("https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?WSDL");
$client->bloquearObjeto(/*parametros aqui..*/);Valeu Mateus.
Estou tentando agora executar a biblioteca disponível no Git:
https://github.com/stavarengo/php-sigep
Fiz o seguinte:
Alterei o arquivo Json e executei o composer,
Ele gerou a pasta vendor das duas pastas, do php-sigep e do php-sigep-fpdf
Subi esta pasta no servidor e estou tentando executar, mas dá erro:
Fatal error: Uncaught exception 'RuntimeException' with message 'Não encontrei a classe PhpSigepFPDF. Execute "php composer.phar install" ou baixe o projeto https://github.com/stavarengo/php-sigep-fpdf manualmente e adicione a classe no seu path.' in D:\HTTP\maikon\web\sigep\vendor\stavarengo\php-sigep\exemplos\bootstrap-exemplos.php:17 Stack trace: #0 D:\HTTP\maikon\web\sigep\vendor\stavarengo\php-sigep\exemplos\verificaDisponibilidadeServico.php(3): require_once() #1 {main} thrown in D:\HTTP\maikon\web\sigep\vendor\stavarengo\php-sigep\exemplos\bootstrap-exemplos.php on line 17
Estou executando aqui:
Você está fazendo errado, é um WebService SOAP, não REST.
As chamadas nele devem ser efetuadas via SOAP, não CURL.
Dê uma olhada nesse cara: http://php.net/manual/pt_BR/class.soapclient.php