Download do XML MDF-e

Wagner,

Estou usando o mesmo script php que uso para buscar o PDF que esta vindo normal… trocando apenas a url p xml e mesmo assim não esta vindo nada.

conforme abaixo :

if (isset($_GET[“mdfe_id”])) {

//Buscando o TOKEN ----------------------
include_once '../db/funcoes.php';
include_once '../certificados/token.php';
$token = gerar_token();
//---------------------------------------

$TIPO = $_GET["tipo"];
$MDFE = $_GET["mdfe_id"];

if ( $token != '' ) {

    $headers = [
        'Authorization: Bearer '.$token,
        'Content-Type: application/json'
    ];
    
    if ( $TIPO == 'DANFE') {
        $url = "https://api.sandbox.nuvemfiscal.com.br/mdfe/{$MDFE}/pdf";
    } else {
        $url = "https://api.sandbox.nuvemfiscal.com.br/mdfe/{$MDFE}/xml/manifesto";
    }
    
    $ch2 = curl_init();
    curl_setopt($ch2, CURLOPT_HTTPHEADER, $headers );
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch2, CURLOPT_URL, $url);
    $dados = curl_exec($ch2);
    curl_close($ch2);

    if ( $TIPO == 'DANFE') {
       header('Content-Type: application/pdf');
       header("Content-Disposition: inline; filename=doc.pdf");
    };

    echo $dados;
};

};

O PDF esta vindo normalmente…

Bom dia, @w295416.

Em uma mensagem acima, o @wlandgraf o orientou a tratar ou configurar o curl para seguir redirecionamentos. Você chegou a fazer isso?

Segue um exemplo de utilização da configuração CURLOPT_FOLLOWLOCATION:

Bom dia,

Obrigado pelo suporte.

Abraços

@w295416

Conseguiu resolver?

Esta retornando sim…

Desculpe minha ignorância, mas sou novo no PHP

Que tipo de retorno é esse ???

� �WY��ʲ�+���u_\�$3�k�o2�2Ȥ�"������@YUݷOw�O��"2��22&"�6���-.�4Ͼ~¿�O/q�Q�%_?������hhHJ��$���]U���������Z�i��_�l�eS�he Ѫ��B���/Ak��O-� �$N����4�>�p8N�E�G�Q<��2"�!�>���6#b��Z˧��-���+�Yy�^��)�F47��簌�4n���0C���ÇXG���Strϔ�-f�h����'��>"A}�g��p���g���X/Ы[��[���"�WH�I��f��񹼗U|bO��W�,��!�S�����Lh-�y���뢈�u{����8Z[~�h>,Y���7ľ��:�ĝ�Es6}��!�1��<,X���h5l������9�tg���/�n�P�֋�I� ee�U���B��1��(.zW7zR��h4��0�T�efE��G#"b��@�f�� �洂���@�Z�7�7�@�g#'�I�v�L���p�g��y�AVy’g�}P�-��������< �<�;hz�h蘞#�h� H�@���}/�YU�+d���N������oq��׭4dۙ�{L�����;�_لsh��9� ����a�.�#�#��F�’�PzQ,� �Q�B�!��[�~U�u �� ���y�zQ-Cv�£:�Z�.�:����,�Vy�D����/�4׃/|��j�J��8Iqܫj�;HuvP�h#����ta�TN�G�b�/���;�Im��$Ũ|�}[4�(@���.�|!���u�a�T�l�����A��(^�j.�)�C�8���H� y�#QH��nO0O�{��0�����&EQ� ��oufh�G �_�Ha�՟fY�;�;���$ã/��9���8���J��?�"��8K�8E�8�+,�[{Y��"HT�p Ǒ)���_�E��b�,O�X$Ϣĥ���l!�_� ��7X��c!,�!������y졮�f~{.�~�-�˟�I~�e@�z� K3$��Ȱ�;$a�ezӿH�N�l��/�:K�q�� �Yt��’г�3��e�~D<�{Kᨄ�,�e��9�!8}��Q�r8�2�G9�� ����,�cQ,�S�� �� ����c�ų4�p$�J����� "P!D��m��"{~}�8�r�1.�qP�y��j’���脛�����ŕU߱�o�; �HDe�-L���0�L�� ���허�z�V��he��k&�Y?���Rm�<�a�ڀh$�m[��Yޭ���-G]ͥ5��EG o�n�&��H��%:�4��=������j3�u��ϫ7szq�zm~�Sm����y�����U>Z��#���<{A8Ǽ|y��J���| �N{�G5�D���.����0?�-e���D����~~T {��ކ4�zF{/��G���J4�I�s?�})oE��&��9�a݆��p�n��WF��Y����Mn_QȾ��Z���&ٺ�?=k�K^$XkX ���4�ק~Wi�YL\gy��c�XWh�5�j�G/��EZ�N?���G����~q�Lt���O�a�~a�{Q���ܭ�ȉ�q�����w�����7&�n���ũ�@�5����s}.�k��M�_Z ����&qY��=m�#���k<��WY ��X����2�����!�QMO[#�c��9��xSq�a�~\n�R�������j�E�tkn����̩I��{�X[y ��ΛU�C�o�Ns�y!ajo��"�v��0�嫞�ٻ�K���uE,Պ�|WL�J���>����4�Z����[���h��-d��� Yz�zD5ȉ}Rl�y����W�c�,���I�&������e���%����c}3�Մ���o9����b 4q�ª:J��ѕ�f�9�K�4�L~���� ��ed"M��$W���� HG�9���z���҆�$�Z���~�����i|�=�D_T M�=%�E�nQʢ�д�퉢��XkL4M���� ���k�&�|��n� mYlX/w&��㛱s�f������iC:� I� )� %oy��{��I6�N�s&���la�ܶ�r}��8��l� �ci�e-��4��؎’� �;6�����bu4��NN���`���|.o9/#�XoT9��~�<����{ 7>aI!aH�6< �P+�KX��qC���iu O�k@w��#�v&M>H[Gw� ,B�t֛��MW�q���������R&��\�G�_�dP���z4�{��W�E2?���l�� ��~Yq �0���&�͞��$��4O�����LK�z�j{�M,��^�&܁:�����@Ļ��SO�����b>�/����� �j���-�Oٹ� �k@�B����.�bla��t��� T�I2�Pn������1d�����ϑVہ!��b�]�]@1�I�nnU א�Sc(��‡���,rR;{A��Y찆y@������~%һ�D18���K�7��vۨ�]'���|�ëhр�R(’L��MB��M��’ۮP�5�������؁h ���¾�’e�v�g�|���?�q�H���^�iS���~��R1V�˝ȗ��$3ew�n�R��c�1����2����uW�Dhù.��X��3�’�����O�G��u�ej��B"�=���M�.4�M7���&[S;E�<ȶ��t.�g��e]L�˶��jF�-ͥ��F���$D{yji�.�aj�N�’�nv� Uo��ۭ���61��8H��޾��֚�U�Y���d㩱��jvs��Yx����.Ol=w���r"N��Ya9��u��o�֊�zuٜ(鲺b���Y���b��(~���`�K8�O�́��7 L���p�j��C,kv;N���C��e� s#����d�k�ZN���85a@��K�Y��3[WRptiZ�$u��60t6�a�h�de��}%�� 9��Sxg���)sv�ur��Z\f��Tye2ۈ�r��>�e��{F��&Ċ=[ܛ@���r�I�b�it-B���f��T��r�2 �Y�a+�kf��-ʋ�n�� �x����Z���� ;`t�MK�ajNr6��Cq��puaMl�% ������D7�↍9%�d\�ԁ�4��� ���kRe�w;?\�URS��C�]4���N�t����;����k����zN��ao]�{?��n��7�7��

Provavelmente é um conteúdo compactado com gzip. Além de configurar o curl para seguir redirecionamentos, deve configurá-lo também para descompactar automaticamente gzip.

Ok
Obrigado

Vou tentar…

@w295416 você pode tentar também nosso SDK para PHP. Está lá justamente pra ajudar.

Boa tarde Wagner,

Já modifiquei o Curl para receber e gravar o retorno… Mas, segundo o Arimateia Jr. este retorno é um arquivo zip.

Estou usando o código abaixo e não consigo abrir o arquivo.

    curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch2, CURLOPT_ENCODING , 'gzip');
    curl_setopt($ch2, CURLOPT_POST, true);
    curl_setopt($ch2, CURLOPT_FILE, $zipResource);


    $dados = curl_exec($ch2);

    curl_close($ch2);
    fclose($zipResource);


    /* Open the Zip file */
    $zip         = new \ZipArchive;
    $extractPath = '/xmls';
   
    $res = $zip->open($zipFile);

    if( $res != "true"){
        echo "Error :- Unable to open the Zip File";
    } else {
      /* Extract Zip File */
      $zip->extractTo($extractPath);
      $zip->close();
    };

Segue código completo

    $zipFile = "xml_danfe.zip"; // Rename .zip file
    $zipResource = fopen($zipFile, "w");


    $ch2 = curl_init();
    curl_setopt($ch2, CURLOPT_HTTPHEADER, $headers );
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch2, CURLOPT_URL, $url);
    curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch2, CURLOPT_ENCODING , 'gzip');
    curl_setopt($ch2, CURLOPT_POST, true);
    curl_setopt($ch2, CURLOPT_FILE, $zipResource);


    $dados = curl_exec($ch2);

    curl_close($ch2);
    fclose($zipResource);


    /* Open the Zip file */
    $zip         = new \ZipArchive;
    $extractPath = '/xmls';
   
    $res = $zip->open($zipFile);

    if( $res != "true"){
        echo "Error :- Unable to open the Zip File";
    } else {
      /* Extract Zip File */
      $zip->extractTo($extractPath);
      $zip->close();
    };

Boa tarde, @w295416.

Eu mencionei gzip e não zip.

O código curl_setopt($ch2, CURLOPT_ENCODING, 'gzip') não resolveu?

Não!!!

Agora ele baixa, mas não consigo abrir nem direto pelo DOS…

Tentou utilizar o SDK?

Pois é, acabei de baixar o SDK, mas estou com um problema, não sei se é falta de familiaridade com o PHP…
Baixei e instalei com o composer, criei o .ENV com a credencial e quando vou testar com o CEP, não encontra as classes…

A função get_oauth2_token é explicada aqui:

Obrigado, agora deu certinho.

Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.