meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
lenguaje_php [2021/06/14 21:44] jsojo |
lenguaje_php [2022/08/29 19:34] (actual) lmartinez |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Ejemplo en lenguaje PHP ====== | ====== Ejemplo en lenguaje PHP ====== | ||
- | Tiene como objetivo ejemplificar el proceso de conexión, acceso y uso de las propiedades y métodos ofrecidos por el Servicio Web de Integración de TFHKA a través del lenguaje de programación PHP | + | Tiene como objetivo ejemplificar el proceso de conexión, acceso y uso de las propiedades y métodos ofrecidos por el Servicio Web de Integración de EBI a través del lenguaje de programación PHP |
Lo más importante es establecer los pasos necesarios para realizar una integración exitosa. | Lo más importante es establecer los pasos necesarios para realizar una integración exitosa. | ||
Línea 7: | Línea 7: | ||
Criterios a tomar en cuenta: | Criterios a tomar en cuenta: | ||
- | * Establecer ruta y Tokens para conectarnos y utilizar los métodos expuestos por el Servicio Web de Integración de TFHKA. | + | * Establecer ruta y Tokens para conectarnos y utilizar los métodos expuestos por el Servicio Web de Integración de EBI . |
- | * Construir / Armar el objeto Documento Electrónico (Factura) que se desea enviar al Servicio Web de Integración de TFHKA. | + | * Construir / Armar el objeto Documento Electrónico (Factura) que se desea enviar al Servicio Web de Integración de EBI . |
- | * Enviar el documento al Servicio Web de Integración de TFHKA para su procesamiento. | + | * Enviar el documento al Servicio Web de Integración de EBI para su procesamiento. |
- | * Recibir y procesar la respuesta del Servicio Web de TFHKA en nuestro proyecto, según sea requerido. | + | * Recibir y procesar la respuesta del Servicio Web de EBI en nuestro proyecto, según sea requerido. |
Pasos para realizar la integración: | Pasos para realizar la integración: | ||
- | PASO 1: Definir variables con la ruta y los tokens requeridos por el Servicio Web de Integración de TFHKA. | + | PASO 1: Definir variables con la ruta y los tokens requeridos por el Servicio Web de Integración de EBI . |
- | PASO 2: Construir el Documento Electrónico a enviar al Servicio Web de Integración de TFHKA. | + | PASO 2: Construir el Documento Electrónico a enviar al Servicio Web de Integración de EBI . |
- | PASO 3: Enviar el Documento Electrónico construido en el paso 3 al Servicio Web de Integración de TFHKA. | + | PASO 3: Enviar el Documento Electrónico construido en el paso 3 al Servicio Web de Integración de EBI . |
- | PASO 4: Recibir y procesar la Respuesta del Servicio Web de Integración de TFHKA. | + | PASO 4: Recibir y procesar la Respuesta del Servicio Web de Integración de EBI . |
**IMPORTANTE**: | **IMPORTANTE**: | ||
- | Para mayor información y detalles sobre el proceso, puede consultar el **Manual de Integración de TFHKA** | + | Para mayor información y detalles sobre el proceso, puede consultar el **Manual de Integración de EBI ** |
- | ==== PASO 1: Definir variables con la ruta y los tokens requerido por el servicio web de TFHKA ==== | + | ===== PASO 1: Definir variables con la ruta y los tokens requerido por el servicio web de EBI ===== |
- | //A continuación definiremos la ruta y los TOKENS requeridos por el Servicio Web de Integración de TFHKA para enviar documentos electrónicos, | + | //A continuación definiremos la ruta y los TOKENS requeridos por el Servicio Web de Integración de EBI para enviar documentos electrónicos, |
// // | // // | ||
Línea 34: | Línea 34: | ||
$tokenPassword = " | $tokenPassword = " | ||
- | ==== PASO 2: Construir el documento electrónico a enviar al servicio web de integración de TFHKA ==== | + | ===== PASO 2: Construir el documento electrónico a enviar al servicio web de integración de EBI ===== |
En este ejemplo utilizaremos Clases, Atributos y Métodos creados con la finalidad de organizar mejor la estructura del archivo y del cuerpo de código fuente en general. | En este ejemplo utilizaremos Clases, Atributos y Métodos creados con la finalidad de organizar mejor la estructura del archivo y del cuerpo de código fuente en general. | ||
Línea 74: | Línea 74: | ||
$factura-> | $factura-> | ||
- | - Ya teniendo listo el documento, es posible enviarlo al Servicio Web de Integración de TFHKA | + | - Ya teniendo listo el documento, es posible enviarlo al Servicio Web de Integración de EBI |
- | ==== PASO 3: Enviar el documento electrónico construido en el paso 3 al servicio web de integración de TFHKA ==== | + | ===== PASO 3: Enviar el documento electrónico construido en el paso 3 al servicio web de integración de EBI ===== |
- | A continuación definiremos la ruta y los TOKENS requeridos por el Servicio Web de Integración de TFHKA para enviar documentos electrónicos, | + | A continuación definiremos la ruta y los TOKENS requeridos por el Servicio Web de Integración de EBI para enviar documentos electrónicos, |
<code -> | <code -> | ||
Línea 89: | Línea 89: | ||
); | ); | ||
- | - A continuación, | + | - A continuación, |
$respWsPa = json_decode(json_encode($wsPa-> | $respWsPa = json_decode(json_encode($wsPa-> | ||
Línea 97: | Línea 97: | ||
</ | </ | ||
- | ==== PASO 4: Recibir y procesar la respuesta del servicio web de integración de TFHKA ==== | + | ===== PASO 4: Recibir y procesar la respuesta del servicio web de integración de EBI ===== |
- | La respuesta del Servicio Web de TFHKA será enviada inmediatamente. | + | La respuesta del Servicio Web de EBIserá |
En este ejemplo, la respuesta del Servicio Web se muestra directamente a través de la pantalla. | En este ejemplo, la respuesta del Servicio Web se muestra directamente a través de la pantalla. | ||
Línea 105: | Línea 105: | ||
En caso de recibir una respuesta positiva para el envío del Documento Electrónico (código 200), se presentará un enlace para observar los detalles a través de la página de Consulta de Facturas por Qr en una pestaña adicional de su navegador web. | En caso de recibir una respuesta positiva para el envío del Documento Electrónico (código 200), se presentará un enlace para observar los detalles a través de la página de Consulta de Facturas por Qr en una pestaña adicional de su navegador web. | ||
- | La respuesta del Servicio Web de TFHKA incluye: código de la respuesta, resultado, mensaje, cufe y Qr, entre otros. | + | La respuesta del Servicio Web de EBI incluye: código de la respuesta, resultado, mensaje, cufe y Qr, entre otros. |
Para mayor detalle de la respuesta del Servicio Web, podría visualizar el resultado a través de la siguiente instrucción: | Para mayor detalle de la respuesta del Servicio Web, podría visualizar el resultado a través de la siguiente instrucción: | ||
- | Mensajero:: | + | Mensajero: |
* DEFINICIÓN DE CLASES PARA ARMAR EL DOCUMENTO ELECTRÓNICO A ENVIAR, ASÍ COMO SUS ELEMENTOS COMPONENTES: | * DEFINICIÓN DE CLASES PARA ARMAR EL DOCUMENTO ELECTRÓNICO A ENVIAR, ASÍ COMO SUS ELEMENTOS COMPONENTES: | ||
Línea 297: | Línea 297: | ||
} | } | ||
+ | </ | ||
+ | |||
+ | ===== Definición de clases para mostrar información en el Front de esta pagina de ejemplo ===== | ||
+ | |||
+ | <code -> | ||
+ | class Mensajero | ||
+ | |||
+ | { | ||
+ | |||
+ | public static function Encabezado() | ||
+ | |||
+ | { | ||
+ | |||
+ | echo ("< | ||
+ | |||
+ | } | ||
+ | |||
+ | public static function InfoNumero($numero) | ||
+ | |||
+ | { | ||
+ | |||
+ | echo ("< | ||
+ | |||
+ | . $numero | ||
+ | |||
+ | . "</ | ||
+ | |||
+ | <br> | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=' | ||
+ | |||
+ | <ul> | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | </ul> | ||
+ | |||
+ | </ | ||
+ | |||
+ | <div class=' | ||
+ | |||
+ | <button onClick=' | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | } | ||
+ | |||
+ | public static function MostrarRespuesta($respWsPa) | ||
+ | |||
+ | { | ||
+ | |||
+ | echo " | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=' | ||
+ | |||
+ | <span class=' | ||
+ | |||
+ | < | ||
+ | |||
+ | <p class=' | ||
+ | |||
+ | < | ||
+ | |||
+ | . "< | ||
+ | |||
+ | < | ||
+ | |||
+ | . "< | ||
+ | |||
+ | < | ||
+ | |||
+ | . "< | ||
+ | |||
+ | < | ||
+ | |||
+ | . "</ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | if ($respWsPa[" | ||
+ | |||
+ | echo " | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=' | ||
+ | |||
+ | <a href='" | ||
+ | |||
+ | . $respWsPa[" | ||
+ | |||
+ | . "' | ||
+ | |||
+ | Consultar Información | ||
+ | |||
+ | </a> | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Definición de estilos CSS a utilizar en el Front de esta pagina de ejemplo ===== | ||
+ | |||
+ | <code -> | ||
+ | <style type=" | ||
+ | |||
+ | .texto2 { | ||
+ | |||
+ | color: #990000; | ||
+ | |||
+ | font-size: 1rem; | ||
+ | |||
+ | } | ||
+ | |||
+ | .texto3 { | ||
+ | |||
+ | color: #002d99; | ||
+ | |||
+ | font-size: 1.8rem; | ||
+ | |||
+ | padding-left: | ||
+ | |||
+ | } | ||
+ | |||
+ | .texto4 { | ||
+ | |||
+ | color: #d52d06; | ||
+ | |||
+ | font-size: 1.5rem; | ||
+ | |||
+ | padding-left: | ||
+ | |||
+ | } | ||
+ | |||
+ | .texto6 { | ||
+ | |||
+ | color: #fff; | ||
+ | |||
+ | font-size: 1.5rem; | ||
+ | |||
+ | padding-left: | ||
+ | |||
+ | } | ||
+ | |||
+ | .encabezado { | ||
+ | |||
+ | margin: 10 0 5px 0; | ||
+ | |||
+ | padding: 15px; | ||
+ | |||
+ | border-top: 1px solid #E9ECEF; | ||
+ | |||
+ | background: #5077a3; | ||
+ | |||
+ | background: -webkit-linear-gradient(to bottom right, rgb(2, 66, 179) 0%, rgb(0, 47, 134) 100%); | ||
+ | |||
+ | background: linear-gradient(to bottom right, rgb(2, 66, 179) 0%, rgb(0, 47, 134) 100%); | ||
+ | |||
+ | box-shadow: 0px 1px 3px -1px rgba(41, 70, 97, 0.2); | ||
+ | |||
+ | position: relative; | ||
+ | |||
+ | border-bottom: | ||
+ | |||
+ | color: #fff; | ||
+ | |||
+ | font-size: 1.9rem; | ||
+ | |||
+ | padding-left: | ||
+ | |||
+ | } | ||
+ | |||
+ | .encabezado2 { | ||
+ | |||
+ | width: 60%; | ||
+ | |||
+ | margin-top: 20px; | ||
+ | |||
+ | border: 2px solid #c8dbff; | ||
+ | |||
+ | background-color: | ||
+ | |||
+ | position: relative; | ||
+ | |||
+ | color: #002d99; | ||
+ | |||
+ | font-size: 1rem; | ||
+ | |||
+ | border-radius: | ||
+ | |||
+ | padding: 5px; | ||
+ | |||
+ | line-height: | ||
+ | |||
+ | text-align: left; | ||
+ | |||
+ | text-indent: | ||
+ | |||
+ | } | ||
+ | |||
+ | .encabezado3 { | ||
+ | |||
+ | width: 100% margin-top: 10px; | ||
+ | |||
+ | background-color: | ||
+ | |||
+ | position: relative; | ||
+ | |||
+ | color: #002d99; | ||
+ | |||
+ | font-size: 1rem; | ||
+ | |||
+ | border-radius: | ||
+ | |||
+ | padding: 5px; | ||
+ | |||
+ | line-height: | ||
+ | |||
+ | text-align: left; | ||
+ | |||
+ | padding-left: | ||
+ | |||
+ | } | ||
+ | |||
+ | .encabezado4 { | ||
+ | |||
+ | width: 60%; | ||
+ | |||
+ | margin-top: 20px; | ||
+ | |||
+ | border: 2px solid #c8dbff; | ||
+ | |||
+ | border-radius: | ||
+ | |||
+ | } | ||
+ | |||
+ | .encabezado5 { | ||
+ | |||
+ | width: 60%; | ||
+ | |||
+ | margin-top: 50px; | ||
+ | |||
+ | border: 2px solid #c8dbff; | ||
+ | |||
+ | border-radius: | ||
+ | |||
+ | } | ||
+ | |||
+ | .encabezado6 { | ||
+ | |||
+ | margin: 10 0 30px 0; | ||
+ | |||
+ | padding: 0 30px; | ||
+ | |||
+ | border-top: 1px solid #c8dbff; | ||
+ | |||
+ | background-color: | ||
+ | |||
+ | box-shadow: 0px 1px 3px -1px rgba(41, 70, 97, 0.2); | ||
+ | |||
+ | position: relative; | ||
+ | |||
+ | border-bottom: | ||
+ | |||
+ | color: #990000; | ||
+ | |||
+ | font-size: 1.6rem; | ||
+ | |||
+ | text-indent: | ||
+ | |||
+ | } | ||
+ | |||
+ | ul { | ||
+ | |||
+ | list-style: none; | ||
+ | |||
+ | } | ||
+ | |||
+ | li { | ||
+ | |||
+ | margin: 0px 0px 1px 0px; | ||
+ | |||
+ | } | ||
+ | |||
+ | button { | ||
+ | |||
+ | position: relative; | ||
+ | |||
+ | display: inline-block; | ||
+ | |||
+ | padding: 8px 10px; | ||
+ | |||
+ | background-image: | ||
+ | |||
+ | background-image: | ||
+ | |||
+ | text-decoration: | ||
+ | |||
+ | color: #fff; | ||
+ | |||
+ | font-size: 15px; | ||
+ | |||
+ | font-family: | ||
+ | |||
+ | font-weight: | ||
+ | |||
+ | border-radius: | ||
+ | |||
+ | float: right; | ||
+ | |||
+ | } | ||
+ | |||
+ | button: | ||
+ | |||
+ | background: -webkit-linear-gradient(to bottom right, rgb(1, 85, 232) 0%, rgb(0, 81, 232) 100%); | ||
+ | |||
+ | background: linear-gradient(to bottom right, rgb(1, 85, 232) 0%, rgb(0, 81, 232) 100%); | ||
+ | |||
+ | color: #fff; | ||
+ | |||
+ | } | ||
+ | |||
+ | a { | ||
+ | |||
+ | position: relative; | ||
+ | |||
+ | display: inline-block; | ||
+ | |||
+ | padding: 8px 10px; | ||
+ | |||
+ | background-image: | ||
+ | |||
+ | background-image: | ||
+ | |||
+ | text-decoration: | ||
+ | |||
+ | color: #fff; | ||
+ | |||
+ | font-size: 15px; | ||
+ | |||
+ | font-family: | ||
+ | |||
+ | font-weight: | ||
+ | |||
+ | border-radius: | ||
+ | |||
+ | float: right; | ||
+ | |||
+ | } | ||
+ | |||
+ | a:hover { | ||
+ | |||
+ | background: -webkit-linear-gradient(to bottom right, rgb(1, 85, 232) 0%, rgb(0, 81, 232) 100%); | ||
+ | |||
+ | background: linear-gradient(to bottom right, rgb(1, 85, 232) 0%, rgb(0, 81, 232) 100%); | ||
+ | |||
+ | color: #fff; | ||
+ | |||
+ | } | ||
+ | |||
+ | hr { | ||
+ | |||
+ | border: 2px solid #c8dbff; | ||
+ | |||
+ | background-color: | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
</ | </ | ||