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_c [2021/06/15 01:37] jsojo [PASO 5: Recibir y procesar la respuesta del servicio web de integración de TFHKA] |
lenguaje_c [2022/08/29 19:34] (actual) lmartinez |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Ejemplo en lenguaje CSharp ====== | ====== Ejemplo en lenguaje CSharp ====== | ||
- | 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 C Sharp (C#) de la plataforma .Net. /// | + | 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 C Sharp (C#) de la plataforma .Net. /// |
Independientemente del tipo de proyecto C# con el cual se trabaje: Consola, Winforms o WPF, lo más importante es establecer los pasos necesarios para realizar una integración exitosa. | Independientemente del tipo de proyecto C# con el cual se trabaje: Consola, Winforms o WPF, 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 una referencia al Servicio Web de Integración de TFHKA | + | * Establecer una referencia al Servicio Web de Integración de EBI |
- | * Instanciar el objeto a través del cual se tendrá acceso a los métodos del Servicio Web de TFHKA. | + | * Instanciar el objeto a través del cual se tendrá acceso a los métodos del Servicio Web de EBI. |
- | * Construir / Armar el objeto Documento Electrónico (Factura) que se desea enviar al Servicio Web de Integración de TFHKA, a través de los objetos respectivos. | + | * Construir / Armar el objeto Documento Electrónico (Factura) que se desea enviar al Servicio Web de Integración de EBI, a través de los objetos respectivos. |
- | * Enviar el documento al Servicio Web de Integración de TFHKA para su procesamiento. | + | * Enviar el documento al Servicio Web de Integración de EBIpara |
- | * 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 EBIen nuestro proyecto, según sea requerido. |
%%Pasos para realizar la integración: | %%Pasos para realizar la integración: | ||
- | PASO 1: Agregar una nueva Referencia de Servicio en su proyecto, utilizando la URL del Servicio Web de Integración de TFHKA referida | + | PASO 1: Agregar una nueva Referencia de Servicio en su proyecto, utilizando la URL del Servicio Web de Integración de EBIreferida |
- | PASO 2: Crear una instancia del objeto ' | + | PASO 2: Crear una instancia del objeto ' |
- | PASO 3: Construir el Documento Electrónico a enviar, en base a los objetos provistos por el Servicio Web de Integración de TFHKA. | + | PASO 3: Construir el Documento Electrónico a enviar, en base a los objetos provistos por el Servicio Web de Integración de EBI. |
- | PASO 4: Enviar el Documento Electrónico construído en el paso anterior al Servicio Web de Integración de TFHKA, utilizando los Tokens de Empresa y Password indicados en este documento. | + | PASO 4: Enviar el Documento Electrónico construído en el paso anterior al Servicio Web de Integración de EBI, utilizando los Tokens de Empresa y Password indicados en este documento. |
(el Servicio Web procesará su solicitud según las especificaciones de la DGI y retornará de inmediato los resultados). | (el Servicio Web procesará su solicitud según las especificaciones de la DGI y retornará de inmediato los resultados). | ||
- | PASO 5: Recibir y procesar la respuesta del Servicio Web de Integración de TFHKA. | + | PASO 5: 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: Agregar referencia de servicio con la URL del servicio web de integración de TFHKA ===== | + | ===== PASO 1: Agregar referencia de servicio con la URL del servicio web de integración de EBI ===== |
Incluir lo siguiente: | Incluir lo siguiente: | ||
Línea 37: | Línea 37: | ||
<code -> | <code -> | ||
using System; | using System; | ||
- | using EjemploIntegraciondirectaCSharp.TfhkaPaWebService; | + | using EjemploIntegraciondirectaCSharp.EBIPaWebService; |
namespace EjemploIntegraciondirectaCSharp | namespace EjemploIntegraciondirectaCSharp | ||
{ | { | ||
- | class DemoIntCSharpTfhka | + | class DemoIntCSharpEBI |
{ | { | ||
</ | </ | ||
Línea 52: | Línea 52: | ||
* En la ventana desplegada, | * En la ventana desplegada, | ||
- | URL del Servicio Web de Integración de TFHKA: [[http://demoemision.thefactoryhka.com.pa/ | + | URL del Servicio Web de Integración de EBI: [[https://demointegracion.ebi-pac.com/ |
* Haga click sobre el botón " | * Haga click sobre el botón " | ||
Línea 58: | Línea 58: | ||
* Coloque la siguiente identificación en el campo " | * Coloque la siguiente identificación en el campo " | ||
- | Identificación de la Referencia: "TfhkaPaWebService" | + | Identificación de la Referencia: "EBIPaWebService" |
(Dicho nombre es referencial, | (Dicho nombre es referencial, | ||
Línea 64: | Línea 64: | ||
**IMPORTANTE**: | **IMPORTANTE**: | ||
- | TOKENS requeridos por el Servicio Web de Integración de TFHKA para enviar documentos electrónicos, | + | TOKENS requeridos por el Servicio Web de Integración de EBI para enviar documentos electrónicos, |
<code -> | <code -> | ||
- | public const string tokenEmpresa = ""; | + | public const string tokenEmpresa = ""; |
- | public const string tokenPassword = ""; | + | public const string tokenPassword = ""; |
static void Main(string[] args) | static void Main(string[] args) | ||
{ | { | ||
Línea 75: | Línea 75: | ||
</ | </ | ||
- | ===== PASO 2: Crear una instancia del objeto ' | + | ===== PASO 2: Crear una instancia del objeto ' |
A traves de esta instancia tendremos acceso a los métodos públicos disponibles | A traves de esta instancia tendremos acceso a los métodos públicos disponibles | ||
Línea 85: | Línea 85: | ||
| | ||
- | Consola.mensaje(" | + | Consola.mensaje(" |
String numero = ""; | String numero = ""; | ||
while (numero == "" | while (numero == "" | ||
Línea 94: | Línea 94: | ||
</ | </ | ||
- | ===== PASO 3: Construir el documento electrónico a enviar al servicio web de integración de TFHKA ===== | + | ===== PASO 3: Construir el documento electrónico a enviar al servicio web de integración de EBI ===== |
- | %%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 ** |
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 106: | Línea 106: | ||
</ | </ | ||
- | ===== PASO 4: Enviar el documento electrónico construido en el paso 3 al servicio web de integración de TFHKA ===== | + | ===== PASO 4: Enviar el documento electrónico construido en el paso 3 al servicio web de integración de EBI ===== |
Se requiere crear un objeto de tipo EnviarResponse en el cual será utilizado para almacenar la respuesta del Servicio Web | Se requiere crear un objeto de tipo EnviarResponse en el cual será utilizado para almacenar la respuesta del Servicio Web | ||
Línea 120: | Línea 120: | ||
</ | </ | ||
- | ===== PASO 5: Recibir y procesar la respuesta del servicio web de integración de TFHKA ===== | + | ===== PASO 5: 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 EBI será enviada inmediatamente. |
En este ejemplo, la respuesta del Servicio Web se muestra a través de la consola. | En este ejemplo, la respuesta del Servicio Web se muestra a través de la consola. | ||
Línea 128: | Línea 128: | ||
En caso de recibir una respuesta positiva para el envío del Documento Electrónico (código 200), los detalles serán mostrados a través de la página de Consulta de Facturas por Qr en su navegador de Internet. | En caso de recibir una respuesta positiva para el envío del Documento Electrónico (código 200), los detalles serán mostrados a través de la página de Consulta de Facturas por Qr en su navegador de Internet. | ||
- | La respuesta del Servicio Web de TFHKA incluye: código de la respuesta, resultado, mensaje, cufe y Qr, entre otros. (ver el Examinador de Objetos de VisualStudio) | + | La respuesta del Servicio Web de EBI incluye: código de la respuesta, resultado, mensaje, cufe y Qr, entre otros. (ver el Examinador de Objetos de VisualStudio) |
<code -> | <code -> | ||
Línea 153: | Línea 153: | ||
</ | </ | ||
- | ===== Clases para armar el documento electrónico y elementos componentes, | + | ===== Clases para armar el documento electrónico y elementos componentes, |
La definición de estas clases no es obligatoria ni requerida, pero sirven para ordenar la estructura de este documento y mostrar paso a paso la incorporación de los diferentes objetos que componen el objeto Documento Electrónico. | La definición de estas clases no es obligatoria ni requerida, pero sirven para ordenar la estructura de este documento y mostrar paso a paso la incorporación de los diferentes objetos que componen el objeto Documento Electrónico. | ||
Línea 166: | Línea 166: | ||
//DATOS REFERENCIALES CON FINES DE PRUEBA | //DATOS REFERENCIALES CON FINES DE PRUEBA | ||
- | //Consultar Manual de Integracion | + | //Consultar Manual de Integracion |
factura.codigoSucursalEmisor = " | factura.codigoSucursalEmisor = " | ||
Línea 198: | Línea 198: | ||
{ | { | ||
//DATOS REFERENCIALES CON FINES DE PRUEBA | //DATOS REFERENCIALES CON FINES DE PRUEBA | ||
- | //Consultar Manual de Integracion | + | //Consultar Manual de Integracion |
cliente.tipoClienteFE = " | cliente.tipoClienteFE = " | ||
Línea 227: | Línea 227: | ||
{ | { | ||
//DATOS REFERENCIALES CON FINES DE PRUEBA | //DATOS REFERENCIALES CON FINES DE PRUEBA | ||
- | //Consultar Manual de Integracion | + | //Consultar Manual de Integracion |
datosFactura.tipoEmision = " | datosFactura.tipoEmision = " | ||
Línea 264: | Línea 264: | ||
{ | { | ||
//DATOS REFERENCIALES CON FINES DE PRUEBA | //DATOS REFERENCIALES CON FINES DE PRUEBA | ||
- | //Consultar Manual de Integracion | + | //Consultar Manual de Integracion |
item.descripcion = " | item.descripcion = " | ||
Línea 299: | Línea 299: | ||
//DATOS REFERENCIALES CON FINES DE PRUEBA | //DATOS REFERENCIALES CON FINES DE PRUEBA | ||
- | //Consultar Manual de Integracion | + | //Consultar Manual de Integracion |
TotalesSubTotales.totalPrecioNeto = " | TotalesSubTotales.totalPrecioNeto = " | ||
Línea 327: | Línea 327: | ||
} | } | ||
} | } | ||
+ | </ | ||
+ | |||
+ | ===== Clase para mostrar los mensajes por consola ===== | ||
+ | |||
+ | <code -> | ||
+ | public class Consola | ||
+ | |||
+ | { | ||
+ | |||
+ | //CLASE SÓLO CON FINES ESTÉTICOS PARA LA PRESENTACIÓN DE MENSAJES AL USUARIO A TRAVÉS DE LA CONSOLA. NO OBLIGATORIA | ||
+ | |||
+ | public static void mensaje(string mensaje, int colorInicio, | ||
+ | |||
+ | { | ||
+ | |||
+ | //Se establece color de la línea actual | ||
+ | |||
+ | switch (colorInicio) | ||
+ | |||
+ | { | ||
+ | |||
+ | case 1: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Cyan; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Yellow; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 3: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Gray; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 4: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Green; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 5: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Blue; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 6: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Red; | ||
+ | |||
+ | break; | ||
+ | |||
+ | default: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.White; | ||
+ | |||
+ | break; | ||
+ | |||
+ | } | ||
+ | |||
+ | //Se muestra el Mensaje indicado | ||
+ | |||
+ | Console.WriteLine(mensaje); | ||
+ | |||
+ | //Se establece color de la línea siguiente | ||
+ | |||
+ | switch (colorFin) | ||
+ | |||
+ | { | ||
+ | |||
+ | case 1: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Cyan; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 2: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Yellow; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 3: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Gray; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 4: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Green; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 5: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Blue; | ||
+ | |||
+ | break; | ||
+ | |||
+ | case 6: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.Red; | ||
+ | |||
+ | break; | ||
+ | |||
+ | default: | ||
+ | |||
+ | Console.ForegroundColor = ConsoleColor.White; | ||
+ | |||
+ | break; | ||
+ | |||
+ | } | ||
+ | |||
+ | if (leer == 1) | ||
+ | |||
+ | { | ||
+ | |||
+ | //Se espera por la pulsación de una tecla para continuar | ||
+ | |||
+ | Console.ReadKey(); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | #endregion | ||
+ | |||
+ | } | ||
</ | </ | ||