![]() | CancelacionV2 (Clase) |
Espacio de nombres: EasyOne.Comprobante.Cancelacion
public class CancelacionV2
El siguiente ejemplo muestra un codigo en C# que realiza la petición de cancelación de un comprobante.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace CancelacionV2 { class Program { #region wrappers easyone // csd -> Nombre del archivo del certificado de sellos que se utilizará para el sellado local del comprobante. // key -> Nombre del archivo de llave privada que se utilizará para el sellado local del comprobante. // pwd -> Contraseña de llave privada. // uuid -> Folio fiscal de la factura electronica del que se desea cancelar. // rfcEmisor -> Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante. // agenteId -> Es la clave de integración asignada automáticamente por el portal https://oficinavirtual.invoiceone.mx. // softwareId -> Es la clave de integración asignada automáticamente por el portal https://oficinavirtual.invoiceone.mx. // rfcReceptor -> Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante. // total -> Atributo requerido para representar el total del comprobante a cancelar. [DllImport("EasyOne.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] static extern int EasyOne_CancelaComprobante_v2(string csd, string key, string pwd, string uuid, string rfcEmisor, string agenteId, string softwareId, string rfcReceptor, string total); // p -> Identificador devuelto por la funcion CancelaComprobante_v2 // valor - > Puede llevar los siguiente parametros: // 22 = Solicita el acuse de cancelación. // 23 = Solicita el codigo de cancelación. // 27 = Consulta si el comprobante es cancelable. // 28 = Solicita el estatus del comprobante. // 29 = Solicita el estatus del proceso de cancelación. // 30 = Solicita el codigo de respuesta que arroja el servicio de consulta de CFDI´s. [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern string EasyOne_LeeResultado(int p, int valor); #endregion static void Main(string[] args) { try { Cancelacion(); } catch (Exception ex) { Console.WriteLine(ex); } } private static void Cancelacion() { //Iniciamos el proceso de cancelacion int p = EasyOne_CancelaComprobante_v2("CSD01_AAA010101AAA.cer", "CSD01_AAA010101AAA.key","12345678a", "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC", "AAA010101AAA", "QV1TAXSH", "QV1TAXSH", "XAXX010101000","100.00"); string resultadoXML = String.Empty; //Obtiene el acuse de cancelación Console.WriteLine("\n"); Console.WriteLine("[Acuse]"); Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 22)); //Obtiene el código de cancelación Console.WriteLine("\n"); Console.WriteLine("[Código de cancelación (201 = Cancelado, 202= Cancelado previamente)]"); Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 23)); //Se mostrará si el comprobante es cancelable o no. Console.WriteLine("\n"); Console.WriteLine("[Es cancelable]"); Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 27)); //Se mostrará si el combrobante esta vigente o cancelado. Console.WriteLine("\n"); Console.WriteLine("[Estatus]"); Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 28)); //Obtiene el estatus del proceso de cancelación Console.WriteLine("\n"); Console.WriteLine("[Estatus de Cancelación]"); Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 29)); //Obtiene el codigo de respuesta que arroja el servicio de consulta de CFDI´s Console.WriteLine("\n"); Console.WriteLine("[Codigo de Estatus]"); Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 30)); Console.ReadLine(); } } }