@@ -19,44 +19,120 @@ $ composer require bhexpress/bhexpress-api-client
1919Modo de uso
2020-----------
2121
22- Se recomienda ver los ejemplos para más detalles. Lo que se muestra aquí es sólo
22+ Se recomienda ver las pruebas para más detalles. Lo que se muestra aquí es sólo
2323una idea, y muy resumida:
2424
2525``` php
26- $Boleta = new \bhexpress\api_client\Boleta($token);
27- $boleta = $Boleta->emitir($datos);
28- $pdf = $Boleta->pdf($rut_emisor, $boleta['numero']);
29- file_put_contents('boleta.pdf', $pdf);
26+ use bhexpress\api_client\ApiClient;
27+
28+ $Boleta = new ApiClient();
29+
30+ $periodo = '202407';
31+ $url_listar = '/bhe/boletas?periodo='.$periodo; # Buscar algo similar a urlencode
32+ $response = self::$client->get($url_listar);
33+
34+ echo 'Listado Boletas: '.$response->getBody(); # Resultado del listado
35+
36+ $numero_bhe = '3'; # Número de la BHE a convertir
37+ $url_pdf = '/bhe/pdf/'.$numero_bhe;
38+ $pdf = self::$client->get($url_pdf);
39+
40+ file_put_contents('boleta.pdf', $pdf->getBody()); # Función para crear PDF
3041```
3142
32- Ejemplos
43+ Los ejemplos anteriores demuestran la capacidad de obtener BHEs emitidas, y en un caso hasta convertir una de ellas en PDF.
44+
45+ Ejecución de cliente de API
3346--------
3447
35- Los ejemplos cubren los siguientes casos:
48+ Para utilizar este programa y sus servicios, deberás definir las siguientes variables de entorno, a partir de
49+ la consola de comandos. En Windows, se hace de la siguiente forma:
3650
37- - ` 001-boletas_listado.php ` : obtener las boletas de un período.
38- - ` 002-boleta_emitir.php ` : emisitir una BHE.
39- - ` 003-boleta_pdf.php ` : descargar el PDF de una BHE.
40- - ` 004-boleta_email.php ` : enviar por email una BHE.
41- - ` 005-boleta_anular.php ` : anular una BHE.
51+ ``` shell
52+ set BHEXPRESS_API_URL= " https://bhexpress.cl "
53+ set BHEXPRESS_API_TOKEN= " " # aquí el token obtenido en https://bhexpress.cl/usuarios/perfil#token
54+ set BHEXPRESS_EMISOR_RUT= " " # aquí el RUT del emisor de las BHE
55+ ```
4256
43- Los ejemplos, por defecto, hacen uso de variables de entornos, si quieres usar
44- esto debes tenerlas creadas, por ejemplo, en GNU/Linux, con:
57+ En Linux, se hace de la siguiente manera:
4558
4659``` shell
4760export BHEXPRESS_API_URL=" https://bhexpress.cl"
4861export BHEXPRESS_API_TOKEN=" " # aquí el token obtenido en https://bhexpress.cl/usuarios/perfil#token
4962export BHEXPRESS_EMISOR_RUT=" " # aquí el RUT del emisor de las BHE
5063```
5164
52- Luego, para probar los ejemplos, lo más rápido, en GNU/Linux, es crear una
53- carpeta para el proyecto y dentro de esta ejecutar:
65+ Pruebas
66+ --------
67+
68+ Para los siguientes pasos necesitarás los siguientes programas:
69+ - php 7.4
70+ - Composer
71+ - phpunit/phpunit
72+ - vlucas/phpdotenv
73+ - guzzlehttp/guzzle
74+
75+ Crea un archivo llamado ` test.env ` , y coloca las variables de entorno definidas en ` test.env-dist ` .
76+
77+ Luego, para ejecutar las pruebas, deberás tener PHP activo. Para más información de qué programas
78+ se necesitarán, referirse a ` composer.json ` .
79+
80+ Por último, ejecuta el siguiente comando en la consola cmd, Windows powershell, o la shell de linux o Apple.
81+ Abre la consola desde la ubicación de tu proyecto, y ejecuta:
82+
83+ ``` shell
84+ ./vendor/bin/phpunit --filter test_boleta_listar
85+ ```
86+
87+ Lo que hizo el comando es ejecutar una prueba que extrae una lista de boletas emitidas en un periodo específico de tiempo.
88+
89+ Los siguientes comandos pertenecen a las siguientes pruebas:
90+
91+ ### BoletaListarTest
92+ - Ejecuta una prueba que obtiene un listado de boletas en un periodo de tiempo ` AAAAMM ` .
93+ - Retorna: Array con todas las boletas emitidas (o vacía si no se han emitido boletas en ese periodo).
94+ - Variables a utilizar: ` TEST_LISTAR_PERIODO `
95+
96+ ``` shell
97+ ./vendor/bin/phpunit --filter test_boleta_listar
98+ ```
99+
100+ ### BoletaEmitirTest
101+ - Ejecuta una prueba que emite una boleta a un destinatario genérico. Importante anular esta boleta cuando las pruebas se terminen.
102+ - Retorna: Array con la información de la boleta emitida.
103+ - Variables a utilizar: ` BHEXPRESS_EMISOR_RUT ` , ` TEST_EMITIR_FECHAEMIS `
104+
105+ ``` shell
106+ ./vendor/bin/phpunit --filter test_boleta_emitir
107+ ```
108+
109+ ### BoletaPdfTest
110+ - Ejecuta una prueba que convierte una boleta existente en un PDF.
111+ - Retorna: bytes para crear el PDF.
112+ - Variables a utilizar: ` TEST_PDF_NUMEROBHE `
113+
114+ ``` shell
115+ ./vendor/bin/phpunit --filter test_boleta_pdf
116+ ```
117+
118+ ### BoletaEmailTest
119+ - Ejecuta una prueba que envía una BHE existente por correo a un destinatario.
120+ - Retorna: Respuesta con confirmación de que el correo fue enviado a la dirección especificada.
121+ - Variables a utilizar: ` TEST_EMAIL_NUMEROBHE ` , ` TEST_EMAIL_CORREO `
122+
123+ ``` shell
124+ ./vendor/bin/phpunit --filter test_boleta_email
125+ ```
126+
127+ ### BoletaAnularTest
128+ - Ejecuta una prueba que anula una BHE que sigue vigente.
129+ - Retorna: Cabecera de BHE anulada.
130+ - Variables a utilizar: ` TEST_ANULAR_NUMEROBHE `
131+
132+ Esta prueba se debe efectuar teniendo una boleta propia que siga activa pero que desees anular.
54133
55134``` shell
56- $ composer require sasco/bhexpress-api-client
57- $ cp -ar vendor/sasco/bhexpress-api-client/ejemplos .
58- $ cd ejemplos
59- $ php 001-boletas_listado.php
135+ ./vendor/bin/phpunit --filter test_boleta_anular
60136```
61137
62138Básicamente, lo que hacen estos 4 comandos es:
0 commit comments