namespace cte_cancNS { public class cte_canc { public static string host = "https://cancela.comercio-digital.mx"; // **** usr_ws es el usuario asignado por comercio digital para conectarse por web services // **** pwd_ws es el password del usuario asignado // **** todos los metodos regresan un codigo (integer) y una descripcion del error (string) // ademas de lo que debe regresar // tipo2 es el tipo de Comprobante: cfdi3.2, reten1.0, cfdi3.3, reten1.1, pagos1.0, nomina1.0 // **** metodo para cancelar una sola UUID dando el RFC, UUID y los datos del CSD ***** public static void cancelarPorUUIDconCSD ( string tipo2, string usr_ws, string pwd_ws, string rfcEmisor, string uuid, string pve, string b64Key, string b64Cert, string emailE, string emailR, out int codigo, out string mensaje, out string acuse) { codigo = 999; mensaje = ""; acuse = ""; if( usr_ws.Length < 12 || usr_ws.Length > 13 || Q.checkForSQLInjection(usr_ws) == true) { codigo = 801; mensaje = "801 Error Usuario/Password Invalido"; return; } if( pwd_ws == "") { codigo = 802; mensaje = "802 Error usuario/password invalido"; return; } switch( tipo2) { case "cfdi3.2": case "reten1.0": break; default : codigo = 803; mensaje = "803 Error usuario/password invalido"; return; } string lf="\n"; string txt_in = "USER=" + usr_ws+lf +"PWDW=" + pwd_ws+lf +"RFC =" + rfcEmisor+lf +"UUID=" + uuid+lf +"PWDK=" + pve+lf +"KEYF=" + b64Key+lf +"CERT=" + b64Cert+lf +"TIPO=" + tipo2+lf +"ACUS=SI"+lf; if( emailE != "" ) txt_in += "EMAILE="+emailE; if( emailR != "" ) txt_in += "EMAILR="+emailR; string cod2; bool v= H5.ws2( cte_canc.host+"/cancela3/cancelarUuid", txt_in, out cod2 , out mensaje, out acuse ); if( v == false ) { codigo= Q.toi(cod2); return; } codigo= 0; return; } // **** metodo para cancelar varias UUID dando el RFC, UUID y los Certificado en Pfx ***** public static void cancelarPorUUIDconPFX ( string tipo2, string usr_ws, string pwd_ws, string rfcEmisor, string uuid, string pve, string b64Pfx, string emailE, string emailR, out int codigo, out string mensaje, out string acuse) { codigo = 999; mensaje = ""; acuse = ""; if( usr_ws.Length < 12 || usr_ws.Length > 13 || Q.checkForSQLInjection(usr_ws) == true) { codigo = 801; mensaje = "801 Error Usuario/Password Invalido"; return; } if( pwd_ws == "") { codigo = 802; mensaje = "802 Error usuario/password invalido"; return; } switch( tipo2) { case "cfdi3.2": case "reten1.0": break; default : codigo = 803; mensaje = "803 Error usuario/password invalido"; return; } string lf="\n"; string txt_in = "USER=" + usr_ws+lf +"PWDW=" + pwd_ws+lf +"RFC =" + rfcEmisor+lf +"UUID=" + uuid+lf +"PWDK=" + pve+lf +"PFX=" + b64Pfx+lf +"TIPO=" + tipo2+lf +"ACUS=SI"+lf; if( emailE != "" ) txt_in += "EMAILE="+emailE; if( emailR != "" ) txt_in += "EMAILR="+emailR; string cod2; bool v= H5.ws2( cte_canc.host+"/cancela3/cancelarUuid", txt_in, out cod2 , out mensaje , out acuse ); if( v == false ) { codigo= Q.toi(cod2); return; } codigo= 0; return; } } // clase