|
| 1 | +Ejemplo |
| 2 | +======= |
| 3 | + |
| 4 | +El siguiente es un ejemplo básico de cómo obtener un documento DTE emitido usando el cliente de API de LibreDTE: |
| 5 | + |
| 6 | +.. code-block:: php |
| 7 | + <?php |
| 8 | +
|
| 9 | + # Definición de directorio autoload. Necesario si se usa la versión de GitHub. |
| 10 | + require_once __DIR__ . '/vendor/autoload.php'; |
| 11 | +
|
| 12 | + # Importación de biblioteca de LibreDTE |
| 13 | + use libredte\api_client\ApiClient; |
| 14 | +
|
| 15 | + # Instanciación de cliente de API |
| 16 | + $client = new ApiClient(); |
| 17 | +
|
| 18 | + # RUT del emisor sin Dígito Verificador. |
| 19 | + $emisor_rut = 12345678; |
| 20 | + # Filtros a aplicar en la búsqueda de DTEs. |
| 21 | + $filtros = [ |
| 22 | + 'fecha_desde' => '2024-10-25', |
| 23 | + 'fecha_hasta' => date('Y-m-d'), |
| 24 | + ]; |
| 25 | +
|
| 26 | + # Recurso a consumir. |
| 27 | + $resource = sprintf('/dte/dte_tmps/buscar/%d', $emisor_rut); |
| 28 | +
|
| 29 | + # Se efectua la solicitud HTTP y se guarda la respuesta. En esta variable están el estado, cuerpo, etc. |
| 30 | + $response = $client->post($resource, $filtros); |
| 31 | +
|
| 32 | + echo "Status: ".$response['status']['code']."\n"; |
| 33 | +
|
| 34 | + if ($response['status']['code'] != 200) { |
| 35 | + echo $response['body']."\n"; |
| 36 | + } else { |
| 37 | + $documentos = $response['body']; |
| 38 | + $dte_id = 'T'.$documentos[0]['dte'].'F'.$documentos[0]['folio']; |
| 39 | + echo "\n",'test_dte_buscar_documento_emitido() n_documentos ',count($documentos),"\n"; |
| 40 | + echo "\n",'test_dte_buscar_documento_emitido() dte_id ',$dte_id,"\n"; |
| 41 | + echo "\n",'test_dte_buscar_documento_emitido() dte_fecha ',$documentos[0]['fecha'],"\n"; |
| 42 | + } |
| 43 | +
|
| 44 | +Desgloce de ejemplo |
| 45 | +------------------- |
| 46 | + |
| 47 | +Antes de probar, integrar y/o utilizar el cliente de API, necesitas haber definido previamente las variables de entorno. |
| 48 | + |
| 49 | +.. seealso:: |
| 50 | + Para más información sobre este paso, referirse al la guía en Configuración. |
| 51 | + |
| 52 | +Se empieza por importar e instanciar el cliente de API. |
| 53 | + |
| 54 | +.. code-block:: php |
| 55 | + # Definición de directorio autoload. Necesario si se usa la versión de GitHub. |
| 56 | + require_once __DIR__ . '/vendor/autoload.php'; |
| 57 | +
|
| 58 | + # Importación de biblioteca de LibreDTE |
| 59 | + use libredte\api_client\ApiClient; |
| 60 | +
|
| 61 | + # Instanciación de cliente de API |
| 62 | + $client = new ApiClient(); |
| 63 | +
|
| 64 | +Luego, se definen las variables a utilizar. |
| 65 | + |
| 66 | +.. code-block:: php |
| 67 | + # RUT del emisor sin Dígito Verificador. |
| 68 | + $emisor_rut = 12345678; |
| 69 | + # Filtros a aplicar en la búsqueda de DTEs. |
| 70 | + $filtros = [ |
| 71 | + 'fecha_desde' => '2015-01-01', |
| 72 | + 'fecha_hasta' => date('Y-m-d'), |
| 73 | + ]; |
| 74 | +
|
| 75 | +Más adelante, se arma el recurso a utilizar, se consume, y se obtiene su respuesta HTTP. |
| 76 | + |
| 77 | +.. code-block:: php |
| 78 | + # Recurso a consumir. |
| 79 | + $resource = sprintf('/dte/dte_tmps/buscar/%d', $emisor_rut); |
| 80 | +
|
| 81 | + # Se efectua la solicitud HTTP y se guarda la respuesta. |
| 82 | + $response = $client->post($resource, $filtros); |
| 83 | +
|
| 84 | +``$response`` contiene toda la información de la respuesta HTTP, desde el cuerpo hasta el código de estado. |
| 85 | + |
| 86 | +Por último, se despliega en consola el resultado. Si el código de la respuesta HTTP no es 200, se mostrará el mensaje de error. Si es 200, se desplegarán los documentos consultados. |
| 87 | + |
| 88 | +.. code-block:: php |
| 89 | + echo "Status: ".$response['status']['code']."\n"; |
| 90 | +
|
| 91 | + if ($response['status']['code'] != 200) { |
| 92 | + echo $response['body']."\n"; |
| 93 | + } else { |
| 94 | + $documentos = $response['body']; |
| 95 | + $dte_id = 'T'.$documentos[0]['dte'].'F'.$documentos[0]['folio']; |
| 96 | +
|
| 97 | + echo "\nDTEs Temporales: \n"; |
| 98 | + echo "\n",'N DOCUMENTOS: ',count($documentos),"\n"; |
| 99 | + echo "\n",'DTE ID: ',$dte_id,"\n"; |
| 100 | + echo "\n",'DTE FECHA: ',$documentos[0]['fecha'],"\n"; |
| 101 | + } |
| 102 | +
|
| 103 | +.. important:: |
| 104 | + Este ejemplo solo funciona con DTEs temporales. |
| 105 | + |
| 106 | + |
| 107 | +.. seealso:: |
| 108 | + Para saber más sobre los parámetros posibles y el cómo consumir las API, referirse a la `documentación de LibreDTE. <https://developers.libredte.cl/>`_ |
0 commit comments