Visual Basic.NET - Consumir Web Service Descarga Masiva

 
Vista:
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 09/08/2018 12:45:49
Asi como se creó un grupo para llevar a cabo la descarga masiva de comprobantes desde el SAT por medio del web scrapping, ahora tenemos la necesidad de consumir un Web Service para llevar a cabo la misma tarea. Espero que otra vez expongamos nuestros puntos de vista y avances de lo que encontremos para llevar a buen término esta tarea.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 09/08/2018 17:06:37
Excelente, de momento dejo la documentación que ya se tiene (proporcionada por el SAT)
URLs

Autenticacion
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc

Solicitud
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc

Verificación
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/VerificaSolicitudDescargaService.svc

Descarga
https://cfdidescargamasiva.clouda.sat.gob.mx/DescargaMasivaService.svc

Algunos compañeros han comentado que al parecer, han obtenido respuesta usando BasicHttpBinding, pero yo no he podido obtener respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 09/08/2018 18:22:23
Además, se supone que esto de la regresión al sistema anterior sin Captcha es momentáneo cierto?
en lo que nosotros terminamos de estudiar e implementar el webservice.

Y no dejar desprotegidos a los contribuyentes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Alejandro (10 intervenciones) el 09/08/2018 18:48:30
Es correcto, de hecho como comentario la descarga se limita a 2000 documentos por día para que lo tengan en consideración.

Por otro lado, el WS aún no está habilitado, al momento de realizar una llamada este regresa un error de que el request no pudo ser procesado debido a un error interno, por lo que con esto creo se puede confirmar que el servicio aún no está disponible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 49
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Guillermo (27 intervenciones) el 09/08/2018 21:34:14
Buenas tardes, tampoco he podido obtener respuesta, probando la aplicación de microsip se me permite la descarga
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Edgar Perez Carrillo (2 intervenciones) el 20/04/2022 00:44:53
En estos momentos, sólo la la URL de la descarga no funciona para descargar el WSDL

private string urlAutentica = "https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc";
private string urlAutenticaAction = "http://DescargaMasivaTerceros.gob.mx/IAutenticacion/Autentica";

private string urlSolicitud = "https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc";
private string urlSolicitudAction = "http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescarga";

private string urlVerificarSolicitud = "https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/VerificaSolicitudDescargaService.svc";
private string urlVerificarSolicitudAction = "http://DescargaMasivaTerceros.sat.gob.mx/IVerificaSolicitudDescargaService/VerificaSolicitudDescarga";

Estas tiene problema

private string urlDescargarSolicitud = "https://cfdidescargamasiva.clouda.sat.gob.mx/DescargaMasivaService.svc";
private string urlDescargarSolicitudAction = "http://DescargaMasivaTerceros.sat.gob.mx/IDescargaMasivaTercerosService/Descargar";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Edmundo (1 intervención) el 17/06/2022 15:23:35
Hola Edgar

Ando buscando alguien que ya haya hecho esta descarga para un software que hicimos para una empresa por favor si me puedes enviar un correo a [email protected] o un whats al 3312390851.

Yo se que tiene un costo asi que por favor buscanos porque tenemos problemas con el desarrollo actual.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de EDUARDO

Consumir Web Service Descarga Masiva

Publicado por EDUARDO (5 intervenciones) el 17/06/2022 23:27:28
Buen día

1.- Requieres una interfaz para verificar que revises si el estado es correcto
sw01

2.- Si el estado es 3, puedes descargar la solicitud,
ejemplo del código del botón de descarga: (todos mis códigos son hechos en C#)

private void btndescarga2_Click(object sender, EventArgs e)
{
byte[] pfx = File.ReadAllBytes(tb_pfx.Text);
X509Certificate2 certifcate = certifcate_x;
string descargaResponse = DescargarSolicitud(certifcate, txtaut.Text, txtidpaq.Text, lbl_rfc.Text);
if (descargaResponse == "")
{
}
else
{
GuardarSolicitud(txtidpaq.Text, descargaResponse, txtruta.Text);
MessageBox.Show("Descarga realizada con exito");
}
}

private static string DescargarSolicitud(X509Certificate2 certifcate, string autorization, string idPaquete, string RfcEmisor)
{
string urlDescargarSolicitud = "https://cfdidescargamasiva.clouda.sat.gob.mx/DescargaMasivaService.svc";
string urlDescargarSolicitudAction = "http://DescargaMasivaTerceros.sat.gob.mx/IDescargaMasivaTercerosService/Descargar";
DescargarSolicitud descargarSolicitud = new DescargarSolicitud(urlDescargarSolicitud, urlDescargarSolicitudAction);
string xmlDescarga = descargarSolicitud.Generate(certifcate, RfcEmisor, idPaquete);
return descargarSolicitud.Send(autorization);
}

private static void GuardarSolicitud(string idPaquete, string descargaResponse, String ruta)
{
string path = ruta;
byte[] file = Convert.FromBase64String(descargaResponse);
Directory.CreateDirectory(path);

try
{
using (FileStream fs = File.Create(path + idPaquete + ".zip", file.Length))
{
fs.Write(file, 0, file.Length);
}
Console.WriteLine("FileCreated: " + path + idPaquete + ".zip");

}
catch (Exception ex)
{
Console.WriteLine("El archivo solo puede descargarse en una sola ocasión, Por favor genere otra solicitud ID" + ex);
}
}

Espero esto resuelva tu duda, y regresa el favor si un día alguien pide ayuda regálale una hora de tu ayuda, a veces no sabes todo el bien que causa eso.

espero hacer pronto un curso demostrativo como crear el software para descargar masivamente los CFDI del SAT actualizado a junio del 2022

[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Edgar Perez Carrillo (2 intervenciones) el 20/04/2022 03:35:21
Para aquellos que tenían funcionando su código y en marzo dejó de funcionar, les comparto la solución que a mi me funcionó, está en JAVA 8 pero es muy parecido a C#

saludos.
public class CrearSOAPMessageSolicitud {
private String RFCSOLICITANTE;
private String RFCRECEPTOR;
private String RFCEMISOR;
private String INICIO;
private String FIN;
private String TIPO;
private String SHADIGESTB64;
private KeyPair KEYPAIR;
private String SELLOB64;
private byte[] BYTECER;

public SOAPMessage getSOAPMessageSolicitud(byte[] byteCer,
byte[] byteKey, byte[] byteClave, String token, String rfcEmisor, String rfcReceptor, String rfcSolicitante,
Date fechaInicial, Date fechaFinal, String tipoSolicitud, String urlSolicitudAction) {
SOAPMessage soapMessage = null;
this.RFCEMISOR = rfcEmisor;
this.RFCSOLICITANTE = rfcSolicitante;
this.RFCRECEPTOR = rfcReceptor;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
this.INICIO = format.format(fechaInicial);
this.FIN = format.format(fechaFinal);
this.TIPO = tipoSolicitud;
this.BYTECER = byteCer;
try {
this.KEYPAIR = KeyPairUtil.keyPair(byteCer, byteKey, byteClave);
MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.DEFAULT_SOAP_PROTOCOL);
soapMessage = messageFactory.createMessage();
//*************************************************
//parte o sección del mensaje
SOAPPart soapPart = soapMessage.getSOAPPart();
//sobre del mensaje, que es una parte del mismo
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();

//MODIFICANDO EL ENVELOPE
//obtenemos el prefijo actual SOAP-ENV
String prefijo = soapEnvelope.getPrefix();
//quitamos el espacio con nombre del prefijo actual
soapEnvelope.removeNamespaceDeclaration(prefijo);
//colocamos el prefijo que deseamos s, si no agregamos este prefijo usará el default que es SOAP-ENV
soapEnvelope.setPrefix("s");
//agregamos el nombre de espacio para el prefijo s
soapEnvelope.addNamespaceDeclaration("s", "http://schemas.xmlsoap.org/soap/envelope/");
//espacio con nombre para la seguridad
// soapEnvelope.addNamespaceDeclaration("u", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");
// soapEnvelope.addNamespaceDeclaration("des", "http://DescargaMasivaTerceros.sat.gob.mx"); //xmlns:des="http://DescargaMasivaTerceros.sat.gob.mx"
// soapEnvelope.addNamespaceDeclaration("xd", "http://www.w3.org/2000/09/xmldsig#"); //xmlns:xd="http://www.w3.org/2000/09/xmldsig#"



//HEADER
this.agregarHeader(soapEnvelope);
//BODY
this.agregarBody(soapEnvelope);

javax.xml.soap.MimeHeaders headers = null;
headers = soapMessage.getMimeHeaders();
headers.addHeader("Authorization", token);
headers.addHeader("soapAction", urlSolicitudAction);


soapMessage.saveChanges();
}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el mensaje SOAP Solicitud", exc);
}
return soapMessage;
}

//HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER
private void agregarHeader(SOAPEnvelope soapEnvelope) {
try {
//obtenemos el Header que por default se asi:
//<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
SOAPHeader soapHeader = soapEnvelope.getHeader();
//obtenemos el prefijo default SOAP-ENV
String prefijo = soapHeader.getPrefix();
soapHeader.removeNamespaceDeclaration(prefijo);
//asignamos el prefijo S
soapHeader.setPrefix("s");



SOAPHeaderElement soapHeaderElementActivityId = soapHeader.addHeaderElement(new QName("http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics", "ActivityId", ""));
this.agregarHeader_ActivityId(soapHeaderElementActivityId);

}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Header", exc);
}
}

private void agregarHeader_ActivityId(SOAPHeaderElement soapHeaderElementActivityId) {
try {

soapHeaderElementActivityId.setAttribute("CorrelationId", "806aad0d-ef46-443b-9741-040c8e8e8c7d");
//soapHeaderElementActivityId.setAttribute("xmlns", "http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics");
soapHeaderElementActivityId.addTextNode("e906cfb4-f706-43de-94d0-5cc935be1aaa");

}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Header - ActivityId", exc);
}
}
//HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER

//BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY BODY
private void agregarBody(SOAPEnvelope soapEnvelope) {
try {
SOAPBody soapBody = soapEnvelope.getBody();
String prefijo = soapBody.getPrefix();
soapBody.removeNamespaceDeclaration(prefijo);
soapBody.setPrefix("s");
soapBody.addNamespaceDeclaration("xsi", "http://www.w3.org/2001/XMLSchema-instance");
soapBody.addNamespaceDeclaration("xsd", "http://www.w3.org/2001/XMLSchema");

this.agregarBody_SolicitaDescarga(soapBody, soapEnvelope);

}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Body", exc);
}
}

private void agregarBody_SolicitaDescarga(SOAPBody soapBody, SOAPEnvelope soapEnvelope) {
try {
//aquí al crear el nodo se agrega el nombre, el prefijo y su espacio con nombre
SOAPElement soapElementSolicitaDescarga = soapBody.addBodyElement(soapEnvelope.createName("SolicitaDescarga", "", "http://DescargaMasivaTerceros.sat.gob.mx"));

this.agregarBody_SolicitaDescarga_solicitud(soapElementSolicitaDescarga);

}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Body - SolicitaDescarga", exc);
}
}

private void agregarBody_SolicitaDescarga_solicitud(SOAPElement soapElementSolicitaDescarga) {
try {
//aquí al crear el nodo se agrega el nombre, el prefijo y su espacio con nombre
SOAPElement soapElementSolicitaDescargaSolicitud = soapElementSolicitaDescarga.addChildElement("solicitud");
if(this.RFCEMISOR != null) {
soapElementSolicitaDescargaSolicitud.setAttribute("RfcEmisor", this.RFCEMISOR);
}

soapElementSolicitaDescargaSolicitud.setAttribute("RfcSolicitante", this.RFCSOLICITANTE);
soapElementSolicitaDescargaSolicitud.setAttribute("FechaInicial", this.INICIO);
soapElementSolicitaDescargaSolicitud.setAttribute("FechaFinal", this.FIN);
soapElementSolicitaDescargaSolicitud.setAttribute("TipoSolicitud", this.TIPO);

if(this.RFCRECEPTOR != null) {
this.agregarBody_SolicitaDescarga_solicitud_Receptores(soapElementSolicitaDescargaSolicitud);
}

this.agregarBody_SolicitaDescarga_solicitud_Signature(soapElementSolicitaDescargaSolicitud);

}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Body - SolicitaDescarga - solicitud", exc);
}
}

private void agregarBody_SolicitaDescarga_solicitud_Receptores(SOAPElement soapElementSolicitaDescargaSolicitud) {
try {
SOAPElement soapElementSolicitaDescargaSolicitudRfcReceptores = soapElementSolicitaDescargaSolicitud.addChildElement("RfcReceptores");
SOAPElement soapElementSolicitaDescargaSolicitudRfcReceptoresReceptor = soapElementSolicitaDescargaSolicitudRfcReceptores.addChildElement("RfcReceptor");

soapElementSolicitaDescargaSolicitudRfcReceptoresReceptor.setTextContent(RFCRECEPTOR);

} catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Body - SolicitaDescarga - solicitud - RfcReceptores", exc);
}

}

private void agregarBody_SolicitaDescarga_solicitud_Signature(SOAPElement soapElementSolicitaDescargaSolicitud) {
try {
SOAPElement soapElementSolicitaDescargaSolicitudSignature = soapElementSolicitaDescargaSolicitud.addChildElement("Signature","", "http://www.w3.org/2000/09/xmldsig#");
SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfo = soapElementSolicitaDescargaSolicitudSignature.addChildElement("SignedInfo");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoCanonicalizationMethod = soapElementSolicitaDescargaSolicitudSignatureSignedInfo.addChildElement("CanonicalizationMethod");
soapElementSolicitaDescargaSolicitudSignatureSignedInfoCanonicalizationMethod.setAttribute("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoSignatureMethod = soapElementSolicitaDescargaSolicitudSignatureSignedInfo.addChildElement("SignatureMethod");
soapElementSolicitaDescargaSolicitudSignatureSignedInfoSignatureMethod.setAttribute("Algorithm", "http://www.w3.org/2000/09/xmldsig#rsa-sha1");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoReference = soapElementSolicitaDescargaSolicitudSignatureSignedInfo.addChildElement("Reference");
soapElementSolicitaDescargaSolicitudSignatureSignedInfoReference.setAttribute("URI", "#_0");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceTransforms = soapElementSolicitaDescargaSolicitudSignatureSignedInfoReference.addChildElement("Transforms");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceTransformsTransform = soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceTransforms.addChildElement("Transform");
soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceTransformsTransform.setAttribute("Algorithm", "http://www.w3.org/2000/09/xmldsig#enveloped-signature");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceDigestMethod = soapElementSolicitaDescargaSolicitudSignatureSignedInfoReference.addChildElement("DigestMethod");
soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceDigestMethod.setAttribute("Algorithm", "http://www.w3.org/2000/09/xmldsig#sha1");

String canonicalTimestamp = this.getCanonicalTimestamp();
byte[] byteSha1 = Sha.sha1(canonicalTimestamp);
this.SHADIGESTB64 = Base64.getEncoder().encodeToString(byteSha1);

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceDigestValue = soapElementSolicitaDescargaSolicitudSignatureSignedInfoReference.addChildElement("DigestValue");
soapElementSolicitaDescargaSolicitudSignatureSignedInfoReferenceDigestValue.addTextNode(this.SHADIGESTB64);

String canonicalSignedInfo = this.getCanonicalSignedInfo(this.SHADIGESTB64);
this.SELLOB64 = SignatureExt.sellarSignatureConKeyDerSha1_1(canonicalSignedInfo, this.KEYPAIR);

SOAPElement soapElementSolicitaDescargaSolicitudSignatureSignatureValue = soapElementSolicitaDescargaSolicitudSignature.addChildElement("SignatureValue");
soapElementSolicitaDescargaSolicitudSignatureSignatureValue.addTextNode(this.SELLOB64);

SOAPElement soapElementSolicitaDescargaSolicitudSignatureKeyInfo = soapElementSolicitaDescargaSolicitudSignature.addChildElement("KeyInfo");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509Data = soapElementSolicitaDescargaSolicitudSignatureKeyInfo.addChildElement("X509Data");

SOAPElement soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerial = soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509Data.addChildElement("X509IssuerSerial");

CerDer cerDer = new CerDer(this.BYTECER);
SOAPElement soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerialX509IssuerName = soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerial.addChildElement("X509IssuerName");
soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerialX509IssuerName.addTextNode(cerDer.getIssuer());

SOAPElement soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerialX509SerialNumber = soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerial.addChildElement("X509SerialNumber");
soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509IssuerSerialX509SerialNumber.addTextNode(cerDer.getSerialNumber());

String cerB64 = Base64.getEncoder().encodeToString(this.BYTECER);
SOAPElement soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509Certificate = soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509Data.addChildElement("X509Certificate");
soapElementSolicitaDescargaSolicitudSignatureKeyInfoX509DataX509Certificate.addTextNode(cerB64);


}catch (SOAPException exc) {
throw new RuntimeException("Error al crear el nodo Body - SolicitaDescarga - solicitud - Signature", exc);
}
}

private String getCanonicalTimestamp() {
String canonicalTimestamp = "";
if (this.RFCRECEPTOR != null)
{
canonicalTimestamp = "<des:SolicitaDescarga xmlns:des=\"http://DescargaMasivaTerceros.sat.gob.mx\">"
+ "<des:solicitud RfcEmisor=\"" + this.RFCEMISOR + "\" RfcReceptor=\"" + this.RFCRECEPTOR + "\" RfcSolicitante=\"" + this.RFCSOLICITANTE + "\" FechaInicial=\"" + this.INICIO + "\" FechaFinal=\"" + this.FIN + "\" TipoSolicitud=\"CFDI\">"
+ "</des:solicitud>"
+ "</des:SolicitaDescarga>";
}
else
{
canonicalTimestamp = "<des:SolicitaDescarga xmlns:des=\"http://DescargaMasivaTerceros.sat.gob.mx\">"
+ "<des:solicitud RfcEmisor=\"" + this.RFCEMISOR + "\" RfcSolicitante=\"" + this.RFCSOLICITANTE + "\" FechaInicial=\"" + this.INICIO + "\" FechaFinal=\"" + this.FIN + "\" TipoSolicitud=\"CFDI\">"
+ "</des:solicitud>"
+ "</des:SolicitaDescarga>";
}
return canonicalTimestamp;
}

private String getCanonicalSignedInfo(String digest) {
String canonicalSignedInfo = "<SignedInfo xmlns=\"http://www.w3.org/2000/09/xmldsig#\">" +
"<CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></CanonicalizationMethod>" +
"<SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"></SignatureMethod>" +
"<Reference URI=\"#_0\">" +
"<Transforms>" +
"<Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></Transform>" +
"</Transforms>" +
"<DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"></DigestMethod>" +
"<DigestValue>" + digest + "</DigestValue>" +
"</Reference>" +
"</SignedInfo>";
return canonicalSignedInfo;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Lazz (2 intervenciones) el 09/08/2018 18:18:59
Perfecto, gracias por este nuevo enlace, en cuando tenga algo nuevo lo comparto por aquí.
Saludos colegas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 09/08/2018 19:01:22
Encontré esta Literatura de Microsoft, en mi caso voy a estudiarla:
https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/transport-security-with-certificate-authentication

Hasta donde sabemos no es un Webservice normal, hasta donde se ve un Webservice normal puede arrojar su definición y métodos WSDL
sin seguridad.

En este caso es un Webservice cifrado, es decir es necesario Autenticarse con un certificado X509, usando BasicHttpBinding.
Este tipo de Webservice son "WCF" o "Windows Communication Foundation", que es de lo que habla la liga que les comparto.


El caso es echar a andar ese Webservice con las herramientas que el SAT usa, o sea Visual con C# o NET.
Una vez teniendo un ejemplo funcional, ahora si podemos estudiarlo a fondo para ver como echarlo a andar en otros lenguajes

como Xojo, Python o JAVA, o Javascript por si alguno tiene un sistema desarrollado como aplicación web.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por EP (3 intervenciones) el 09/08/2018 19:07:06
Logré obtener una respuesta de "Certificado inválido" en el WS haciendo lo siguiente:

Generar web service en Visual Studio con WSDL en https://pruebacfdirecepcion.cloudapp.net/Seguridad/Autenticacion.svc/wsdl?singleWsdl.
(es el endpoint de prueba para los PACs, por ahí del 2011)

Luego:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void BypassCertificateError()
{
    ServicePointManager.ServerCertificateValidationCallback +=
 
        delegate (
            Object sender1,
            X509Certificate certificate,
            X509Chain chain,
            SslPolicyErrors sslPolicyErrors)
        {
            return true;
        };
}
 
static void Main(string[] args)
{
    var x = new ServiceReference1.AutenticacionClient();
    var certificate = new X509Certificate2("C:\\Users\\...\\prueba.pfx");
    Console.WriteLine(certificate.Thumbprint);
    x.ClientCredentials.ClientCertificate.Certificate = certificate;
    BypassCertificateError();
    x.Autentica();
}

El pfx se genera con

1
openssl pkcs12 -export -out prueba.pfx -inkey private.pem -in public.pem

Luego, interceptar el request con Fiddler y mandar un request muy parecido al endpoint de descarga masiva.

No he podido pasar de ahí.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 11/08/2018 06:08:42
EP
Hola


Probé tu código y me da este error.
022



Te paso este WeTransfer con mi código:
https://we.tl/LgfZVyziTK


¿Qué estaré haciendo mal?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Mary (1 intervención) el 13/01/2023 21:48:16
La liga que compartiste para obtener el wsdl ya no es válida, tienes la definición de la clase que te importó en tu ambiente de desarrollo, de esa manera la podría generar manualmente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 09/08/2018 19:07:42
Si ese Chilkat es muy bueno, yo también tomo mucha referencia de allí.
Solo que hasta donde alcanzo a entender, allí es para autenticarse con Usuario y contraseña no?

y en este caso, necesitamos aunetntificarnos con el CER y el KEY

En otros apartados de CHILKAT hablan de que se puede extraer el contenido del CER, usando la contraseña del certificado y también
hablan de extraer el Modulo RSA del Certificado y el KEY:

https://www.example-code.com/xojo/rsa_key_modulus.asp
y hay otro donde ponen como formar en base al CER y al KEY un PFX, pero desgraciadamente ese link está roto:
https://www.example-code.com/xojo/convert_cert_and_key_to_pem_and_pfx.asp


La cuestión es como inyectarle el certificado al Webservice

Según leo en el enlace de Microsoft, por eso es que Pide que añadas el Certificado al almacén local de Windows, por que lo vas a invocar mediante código.

1
2
3
4
5
6
// The client must specify a certificate trusted by the server.  
cc.ClientCredentials.ClientCertificate.SetCertificate(
    StoreLocation.CurrentUser,
    StoreName.My,
    X509FindType.FindBySubjectName,
    "contoso.com");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 09/08/2018 19:50:52
"Según leo en el enlace de Microsoft, por eso es que Pide que añadas el Certificado al almacén local de Windows, por que lo vas a invocar mediante código."

Exacto, es lo que tambien expone el SAT con el primer código en C# que viene en la documentación que ofrece.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Fernando Canul (1 intervención) el 10/01/2020 18:59:43
disculpa mi ignorancia, pero en donde puedo la documentación, en donde esta el código en c#.

si me proporcionan el link me seria de mucha ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Cesar Aguilera (19 intervenciones) el 09/08/2018 19:41:52
Les comento que hoy por la mañana contacte al SAT y su respuesta fue la siguiente:

LUCERO : La respuesta es le comento que este aplicativo de Web Service, aun se esta trabajando en la instalación de este programa, por lo que aun no esta disponible, le invito a estar al pendiente, de los comunicados que se publiquen en cuanto este aplicativo entre en funcionamiento.

Así que por el momento no sabremos si estamos haciendo las cosas mal, adicional yo ya logro obtener esta respuesta:

La URL que ocupo es: https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc (No es WSDL) y el Request que envío es muy parecido al que tienen en el ejemplo que publicaron.

1
2
3
4
5
6
7
8
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <s:Fault>
            <faultcode xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</faultcode>
            <faultstring xml:lang="en-US">An error occurred when verifying security for the message.</faultstring>
        </s:Fault>
    </s:Body>
</s:Envelope>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 09/08/2018 21:31:33
Puedes postear tu request?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 10/08/2018 07:55:24
Exacto, como es que haces tu Request, en Visual al querer agregar el SVC de autenticación como Referencia, da error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo
Val: 60
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Eduardo (27 intervenciones) el 09/08/2018 21:12:33
Es correcto, durante la platica comentaron que ya estaban disponibles...ahora el problema es conectarnos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 09/08/2018 21:59:55
No, aun no están habilitados,ya que si lo estuvieran se podría crear la instancia en vez de estarlo haciendo como actualmente intentamos (httprequest), no queda mas que esperar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 09/08/2018 23:18:25
Entonces por favor despejame de esta duda: Si hago una peticion a la url que dá el SAT, pero le modifico un caracter me devuelve esto:

https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacionx.svc
GET HTTP/2.0 404 Not Found <================================================
Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-AR,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Y si hago la petición a la original de vuelve esto:

https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc
GET HTTP/2.0 400 Bad Request <================================================
Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-AR,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Recalco lo que puso Gerardo:

Hasta donde sabemos no es un Webservice normal, hasta donde se ve un Webservice normal puede arrojar su definición y métodos WSDL sin seguridad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Alejandro (10 intervenciones) el 09/08/2018 23:36:35
El error 400 lo obtienes porque como el mensaje lo dice (Bad Request) el request no fue exitoso ya que lo mas seguro es que no existe un método GET que no acepte parámetros pero pues tampoco acepta los famosos /wsdl o /wsdl?singleWsdl que son los tradicionales de WCF así que está mas complicado saber si realmente el servicio efectivamente está bien o el error 400 se debe a que tiene errores el portal, porque si hay respuesta por parte del servidor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Alejandro (42 intervenciones) el 09/08/2018 23:36:57
Hay diversos factores por los cuales podría aparecer el bad request, también como comento para poder consumir apropiadamente el web service es necesario poder crear la instancia de dicho objeto (en este caso cliente), ya que sin este cliente no es posible que se pueda obtener el token (iniciar sesion en el web service)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 09/08/2018 23:46:06
Exacto, ahora: ¿si no estuviera listo el WS por qué en la videoconferencia dijeron que ya estaba operando? Total que quedo en las mismas.

Lo de mandar la e.Firma pues no está complicado, es solo cuestión de registrarlo y, de acuerdo al código C# que dió el SAT, se recupera y se anexa. Si se dan cuenta, solo pide el certificado, no está pidiendo el pass del mismo, bueno eso es lo yo digo, ¿o el pass se agregará al ensobretado?. La cosa es que entre más le pienso más bolas me hago.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por EP (3 intervenciones) el 09/08/2018 23:50:52
Sí necesita ambas (en mi ejemplo puse como se carga de .pfx que combina .cer/.key) -- con la llave privada (el .key) se genera el sello digital (nodo Signature) y en el mismo request se manda el base64 de la pública (muy parecido a timbrado). Les mando un request ejemplo que pasó la barrera de BAD REQUEST y la de InvalidSecurity:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
        <o:Security mustUnderstand="true">
            <u:Timestamp u:Id="id-c5b5adcb-520e-4927-9865-723e4ce1ba9e">
                <u:Created>2018-08-09T00:30:10.811997Z</u:Created>
                <u:Expires>2018-08-09T00:35:10.811997Z</u:Expires>
            </u:Timestamp>
            <o:BinarySecurityToken u:Id="id-5f0f719e-3c41-4875-9bf4-fc7a03731b9e"
                    EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
                    ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">$BASE64_DEL_PEM</o:BinarySecurityToken>
            <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
                <SignedInfo>
                    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                    <Reference URI="#id-c5b5adcb-520e-4927-9865-723e4ce1ba9e">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                        <DigestValue>$HASH_SHA1</DigestValue>
                    </Reference>
                </SignedInfo>
                <SignatureValue>$SELLO_DIGITAL</SignatureValue>
                <KeyInfo>
                    <o:SecurityTokenReference>
                        <o:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#id-5f0f719e-3c41-4875-9bf4-fc7a03731b9e"/>
                    </o:SecurityTokenReference>
                </KeyInfo>
            </Signature>
        </o:Security>
    </s:Header>
    <s:Body>
        <Autentica xmlns="http://tempuri.org/"/>
    </s:Body>
</s:Envelope>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Jose (3 intervenciones) el 10/08/2018 01:18:40
Gracias por la aportacion, yo habia intentado un CustomBinding pero no queda igual que como propone el estandard de seguridad y como lo ocupa el SAT. El tuyo quedo mejor, solo que como otros ocupe un webservice diferente pero anteriormente usado por el SAT por mientras. No es el que esta por publicar el SAT de Autentica y el mensaje se compone un poco diferente. A mi tampoco me da identico casi al final del mensaje o mas bien de la cabecera el nodo de <To> y <Action> pero pienso que es por el contrato del nuevo webservice de Autentica quien si lo contendra y tendra los nuevos namespaces.O deberia ya tenerse el To y Action? saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 10/08/2018 05:01:37
Pero que tiene de malo lo que publicó EP?

Hasta donde alcanzo a entender al pasarle un certificado y KEY valido a este WCF Webservice, debe de arrojarte ese XML y el BinarySecurityToken no?

que es el que pone:

1
<o:BinarySecurityToken u:Id="id-5f0f719e-3c41-4875-9bf4-fc7a03731b9e"

Y se supone que este token es el que se debe de pasar como argumento al Web service de Solicitud de descarga, junto con los datos que queramos obtener no?
como RFC que debe ser el mismo del del Certificado Digital, asi como el rango de facturas a obtener.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 6 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Jose (3 intervenciones) el 10/08/2018 18:21:45
Hola, no es que tenga algo de malo, sino como no estamos usando aun el nuevo webservice no se estan haciendo algunas cosas mas que se necesitan en la parte del header.

por ejemplo mirando a como dice el sat que debe ir el header pongo la imagen de su documentacion:
sat-request

en cambio tal y como la hace EP (siendo que estamos usando otro webservice del sat de autenticacion reciente, difernte , pero no el mismo de la descarga masiva que por obvias razones no esta disponible aun ), no se generan esos elementos en el header.
current-request


mirando el XML con el mismo Fiddler , si se parece al XML que pone el SAT en la documentacion, reitero es a nivel del header que hay que incluir cosas para que la respuesta tambien traga esos nodos, en programacion; similar a como se envia un ActionMethod se pueden enviar headers, aun no lo intento por falta de tiempo pero si tengo resultados los comparto, gracias

current-xml
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Alejandro (42 intervenciones) el 09/08/2018 23:52:44
Respuesta sencilla y corta a tu pregunta sobre lo que comenta el SAT: esta mintiendo, así mismo como muchas personas/empresas se quejaron de su nuevo portal porque tenían también demasiadas fallas (además del captcha). Solo hay que esperar a que el SAT realmente habilite los WS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Alejandro (10 intervenciones) el 09/08/2018 23:59:05
Si pide la contraseña, si utilizas la forma en la que pone el SAT de registrar el certificado en el store local le vas a tener que asignar la llave privada ya que solo de esa forma se podrá componer el x509Certificate2 de lo contrario solo le vas a pasar el certificado y te va a lanzar error de que el x509 no tiene llave privada.

En este caso recomiendo generar el pfx ya que ahí se combinan el cer y el key y con eso es mas fácil generar el objeto que requiere el llamado del WS además de que lo puedes utilizar sin necesidad de instalarlo en el store local y como comentan Aleks y el otro tocayo se tiene que poder acceder a los WSDL para poder generar los clientes sino, pues ni forma de poder utilizar los servicios.

Creo que este tema ya se traduce en esperar a que el SAT nos muestre primero los WSDL, porque ahorita el servidor retorna una diversidad de errores que no son claros y la mayoría son propios de WCF.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 10/08/2018 06:04:54
Colegas, les comparto este video, es acerca de Como crear y Consumir un Servicio WCF (Windows Comunication Foundation) por medio de C# y Visual Studio .NET:

https://www.youtube.com/watch?v=yKwyhUruFc8

Para Consumir Web Service, Minuto 10:20
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Eduardo
Val: 60
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Eduardo (27 intervenciones) el 10/08/2018 06:13:07
Gerardo

Revisando el video, en el minuto 14:37 se muestra como en el cliente se importa la referencia al WS, le das la URL y Visual Studio detecta lo que expone el WS, con esta información te puede crear las clases automáticamente para que lo consumas.

El tema con el WS del SAT es que le das la URL y se genera un error, es como si en esta no hubiera un WS, por lo que existen dos posibilidades:

1. El SAT, configuro el WS para que oculte la definición de este, tal vez, temas de seguridad; de este punto no estamos seguros, eso solo una suposición.

2. En esa URL no exista un WS; en este caso, el SAT para quedar bien dice que ya está y da la URL, pero realmente no es un WS; nuevamente es una suposición.

Seguimos investigando...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 10/08/2018 07:36:25
Eso estaba viendo, lo mas probable es que cuando quieres referenciar el Servicio. SVC igual no te deja o te da error, porque quizás sea que a fuerza necesite las credenciales, o sea meterlas de otro modo.

Por otra parte si es posible cargar o popular un Objeto X509Certificate desde la ruta desde donde se encuentre, no es necesario cárgalo desde el almacen de Certificados de Windows, o sea si se puede pero es mejor asi.(Pienso yo)

Trato de ponerme en los zapatos de nuestros clientes, imagina que tengas que cargar al almacen de windows cada certificado, en el caso de un despacho contable, que una computadora esté atascada de certificados de N Clientes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 10/08/2018 12:37:45
Pues tienes 3 opciones: mantienes los certificados y contraseñas en el equipo para acceder a cada momento, cargarlos en el almacen o crear su pfx, como tú dices, pienso yo.

En cuanto a lo de si ya está o no disponible el WS saldremos de duda cuando algún PAC ofrezca el servicio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 10/08/2018 16:09:51
Que horror, entonces si cabe esa posibilidad de que solo sea un servicio para los PAC, pues que engaño de parte del SAT, porque en su pagina hasta dice: "¿Quienes pueden usarlo?, Todas las personas Físicas y morales".

Al menos deberían, agregar: "Procedimiento accesible solo a P.A.C."
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 10/08/2018 16:34:43
JAJAJAJAJA... no, amigo, es solo un pensamiento negativo por la discución de que si está o no disponible el portal. En el video dicen que ya, pero la asesora "LUCERO" dice que no, así como puede ser una mentira la puesta en marcha del WS también sabemos del escaso conocimiento de los asesores en algunos temas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 10/08/2018 19:15:45
Yo no diria que escaso, yo diría que NULO.

No se como a ustedes si les contestó esta chica Lucero, a mi siempre me mandan a la porra.
Los de Soporte tecnico me mandan a Atención Fiscal
y de Atención Fiscal a Soporte Técnico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 10/08/2018 20:12:53
Hola chicos el único ws para probar está asi:


Dim autenticacion As New DESCARGA_MASIVA_WS.net.cloudapp.pruebacfdirecepcion.Autenticacion
autenticacion.ClientCertificates(X509Certificate2Collection)


¿Como generar el parametro X509Certificate2Collection con el archivo .cer y key?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 10/08/2018 22:31:40
Violeta

Se tienen que convertir los archivos .cer y .key a .pem y después estos se combinan para generar el .pfx

Yo lo hago de esta forma

Conviertes el archivo .key a .prm
C:\OpenSSL-Win32\bin\openssl x509 -inform DER -outform PEM -in C:\Proyectos\CerKey\CSI121206SP0.cer -pubkey -out C:\Proyectos\CerKey\CSI121206SP0Cer.pem
Aquí te pide la contraseña de la llave privada para que la captures.

Conviertes el archivo .cer a .prm
C:\OpenSSL-Win32\bin\openssl x509 -inform DER -outform PEM -in C:\Proyectos\CerKey\CSI121206SP0.cer -pubkey -out C:\Proyectos\CerKey\CSI121206SP0Cer.pem

Generamos el archivo .pfx
C:\OpenSSL-Win32\bin\openssl pkcs12 -export -inkey C:\Proyectos\CerKey\CSI121206SP0Key.pem -in C:\Proyectos\CerKey\CSI121206SP0Cer.pem -out C:\Proyectos\CerKey\CSI121206SP0.pfx
Aqui te va a pedir que captures la contraseña del pfx yo pongo la misma que la de la llave pribada .



var certificate = new X509Certificate2(@"C:\Proyectos\CerKey\CSI121206SP0.pfx","a12345678");


Espero te sirva .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 11/08/2018 01:25:21
El el IDE, VS Agregar Referencia->Servicio Web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 11/08/2018 01:55:28
¿Halcón Divino, por qué repetiste la 1a y 2a instrucción?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 11/08/2018 02:36:59
Violeta, gracias por tu respuesta. Algo asi?:

016

017



O se debe de Añadir asi?
018
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 11/08/2018 02:57:51
Violeta.

Ya vi, tenias razón es Referencia WEB:
019
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 11/08/2018 03:44:57
Halcón Divino

Mira, asi es como yo creo mi certificado X509Certificate2:

1) Previamente uso las herramientas de OpenSSL para convertir el. CER a .PEM

2) Convertir el .KEY a .PEM

3) En base al CER.PEM y al KEY.PEM crear el .PFX nuevamente con las herramientas de OpenSSL

4) Creo una variable String, donde le digo la Ruta de mi certificado. PFX:
1
Dim Certificate As String = "C:\Users\Ger\Desktop\FIEL\cerfinal.pfx"

5) Creo una variable del tipo X509Certificate2 y asi le digo, donde está la ruta de mi certificado y su Respectiva Contraseña:
1
Dim cert As New X509Certificate2(Certificate, "miContraseñaDeCertificado")

6) Creo una variable del tipo x509CertificateCollection, asi:
1
Dim Certificados As New X509Certificate2Collection

7) 'Creo una variable de Colección de Certificados X509Certificate2Collection
1
2
Dim Certificados As New X509Certificate2Collection
        Certificados.Add(cert)

8) Hacer la siguiente referencia Web:
https://pruebacfdirecepcion.cloudapp.net/Seguridad/Autenticacion.svc/wsdl?singleWsdl

9)Una vez hecha la referencia Web, ahora Declarar la Variable Autenticaion asi:
1
Dim autenticacion As New WSAutentica.net.cloudapp.pruebacfdirecepcion.Autenticacio


Entonces, basado en lo que publicó Violeta, usar Autenticacion.ClientCertificates(Certificados)
del cual Certificados debería ser una variable del tipo x509Certificate2Collection


Pero cuando hago esto, Me arroja el siguiente error:
Demasiados argumentos para 'Public Overloads ReadOnly Property ClientCertificates As X509CertificateCollection'


¿Qué estaré haciendo mal?.

Por otra parte veo que de este modo si le puedo meter mi Certificado al WS:
1
autenticacion.ClientCertificates.Add(cert)




Saludos y Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 11/08/2018 04:10:28
Miren, asi queda la parte final de mi código.

Ya una vez cargado mi certificado x509 y mi colección de certificados x509.
Después uso el método Autentica y asi se ve mi código:
020


Y al Ejecutar mi código, este es el error que me da:
021
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por EP (3 intervenciones) el 11/08/2018 04:41:02
Checa el código que subí en mi primer mensaje -- viene un ejemplo completo, incluyendo el bypass de problemas de certificación. ¡Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 11/08/2018 15:21:45
Tienes razón en la 2da instrucción debería de ser el del certificado y por error repetí la de la key
La 2da. instrucción debería de haber puesto como Convertir el certificado en PEM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 11/08/2018 15:32:12
EP

Vi tu rutina BypassCertificateError()
Veo que no se le pasa ningún parámetro.

Para que sirve esta rutina o cual es el objetico de esta ???
Porque no se le pasa ningún parámetro ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 11/08/2018 17:51:36
Aquí esta bien clarito, Halcón Divino: https://msdn.microsoft.com/en-us/library/system.net.security.remotecertificatevalidationcallback%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

Además EP le respondió a Gerardo con:

"incluyendo el bypass de problemas de certificación"

Si no quieres tener la funcion como tal podrias pasar esta instrucción:

1
2
3
4
System.Net.ServicePointManager.ServerCertificateValidationCallback = Function(se As Object,
    cert As System.Security.Cryptography.X509Certificates.X509Certificate,
    chain As System.Security.Cryptography.X509Certificates.X509Chain,
    sslerror As System.Net.Security.SslPolicyErrors) True
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 11/08/2018 18:07:53
Gerardo, antes de la línea donde tienes marcado el error, pon esto:

1
System.Net.ServicePointManager.ServerCertificateValidationCallback = Function(se As Object, cert As System.Security.Cryptography.X509Certificates.X509Certificate, chain As System.Security.Cryptography.X509Certificates.X509Chain, sslerror As System.Net.Security.SslPolicyErrors) True
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 12/08/2018 00:20:37
Hola;

Que bien ya vamos avanzado!!

Como sería para crear el .pfx desde net?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 12/08/2018 01:53:32
Violeta

La verdad no se como se pudiera hacer desde .net es mas no se si se pudiera hacer

Pero yo lo aria de la siguiente manera

Con un programa yo cercaria o generatrix un archivo texto con las siguientes instrucciones de OpenSSL
Obiamente debes de tener instalado el OpenSSL en la PC donde corra.

1
2
3
4
5
6
7
8
9
Del C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0Cer.pem
Del C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0key.pem
Del C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0.pfx
 
C:\OpenSSL-Win32\bin\openssl x509  -inform DER -outform PEM -in C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0.cer -pubkey -out C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0Cer.pem
 
C:\OpenSSL-Win32\bin\openssl pkcs8 -in C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0.key  -inform DER -out C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0key.pem -passin pass:a12345678
 
C:\OpenSSL-Win32\bin\openssl pkcs12 -export -inkey C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0Key.pem -in C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0Cer.pem -out C:\Proyectos\CerKeyHerculesPFX\CSI121206SP0.pfx   -passout pass:a12345678

Ya que lo generes le pones un nombre al archivo … el que quieras por ejemplo generapfx pero con extension .bat no le pongas .txt


ya que este creado el archivo .bat lo corres con la siguiente instruction


1
System.Diagnostics.Process.Start("C:\ProyectosWeb\generapfx.bat");

No se cual sea el equivalented en VB.net ….. yo lo estoy poniendo en C#

Si te das cuenta la CONTRASEÑA de la llave privada y del pfx va inmersa en la instruction del openssl … asi que por el password no te preocupes va incluido en el comando del openssl


Espero te sirva.


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 12/08/2018 02:33:58
Aver si no estoy: Para consumir este WS (el "viejito") se necesitan las llaves de prueba que dió el SAT para ese fin, preguntas?

1) ¿Todavía las estará otorgando?, digo, porque si existe alguna de esa época ya no creo que sirva.

2) Si no se tienen esas llaves pues no se lograría avanzar más allá, entonces ¿cuál es el fin de estar probando con ese WS? Ya me perdí.

Por otro lado, con Chilkat podía generar el PFX pero NUNCA me concordó con el generado por Openssl. Los PPM sí son iguales los creados por por los2, pero al momento de generar el PFX los comparaba con el DOS-CMD: FC /B generadoporopenssl.pfx generadoporchilkat.pfx y nunca tuve éxito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Courtois Garcia (15 intervenciones) el 13/08/2018 01:23:40
Hola,

Yo uso una biblioteca llamada BouncyCastle. Se puede obtener como un Nuget Package. Te anexo el ejemplo para obtener el PFX a base del CER y KEY

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/// <summary>
/// Convierte un CER y un KEY en un PFX
/// </summary>
/// <param name="cerText">Certificado CER en base64</param>
/// <param name="keyText">llave privada KEY en base64</param>
/// <param name="keyPass">password de la llaveprivada</param>
/// <returns>el certificado pfx</returns>
public static byte[] CerKey2Pfx(string cerText, string keyText, string keyPass)
{
    try
    {
        byte[] pfxBytes = null;
 
        var certificado = new System.Security.Cryptography.X509Certificates.X509Certificate2(Convert.FromBase64String(cerText));
        var pllavePrivada = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(keyPass.ToCharArray(), Convert.FromBase64String(keyText));
 
        var certificadoBC = new Org.BouncyCastle.X509.X509Certificate(Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(certificado).CertificateStructure);
        var acertificadoBC = new Org.BouncyCastle.Pkcs.X509CertificateEntry[1];
        acertificadoBC[0] = new Org.BouncyCastle.Pkcs.X509CertificateEntry(certificadoBC);
 
        var pfxStore = new Org.BouncyCastle.Pkcs.Pkcs12Store();
        pfxStore.SetKeyEntry("", new Org.BouncyCastle.Pkcs.AsymmetricKeyEntry(pllavePrivada), acertificadoBC);
        using (var pfxStream = new MemoryStream())
        {
            pfxStore.Save(pfxStream, keyPass.ToCharArray(), new Org.BouncyCastle.Security.SecureRandom());
            pfxBytes = pfxStream.ToArray();
        }
 
 
 
        var resultado = Org.BouncyCastle.Pkcs.Pkcs12Utilities.ConvertToDefiniteLength(pfxBytes, keyPass.ToCharArray());
 
        return resultado;
    }
    catch (Exception ex)
    {
        RegistraError(ex);
        return null;
    }
 
}

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 14/08/2018 00:03:14
Courtois Garcia

NuGET es como el Gestor de Paquetes apt-get de Debian pero para .NET verdad?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por ile (2 intervenciones) el 14/08/2018 16:36:00
Buen día

Y ya les regresa algo el web service? a mi me regresa el certificado no es valido :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Alejandro (10 intervenciones) el 14/08/2018 16:41:07
Que tal ile, pues solo regresa errores, en mi caso, al realizar la prueba en estos momentos me sigue indicando que ocurrió un error interno en el servidor cosa que indica que el WS no puede ir mas allá cuando se ha autenticado, es como si no pudiera generar el token, a mi también me mandaba el error del certificado pero genere el PFX y problema resuelto, pero aún así no retorna una respuesta válida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 14/08/2018 20:53:34
Colegas

De donde o como descargaron el .cer y .key de pruebas para generar el .pfx ???

Yo estoy usando el .cer y .key de la eFirma ede un cliente … pero igual me manda el mismo error que ustedes comentan.

Y las url de produccion que publico el SAT pues me marca que aun no estan activas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Alejandro (42 intervenciones) el 14/08/2018 22:37:47
Según tengo entendido el SAT jamás proporcionó ligas publicas de prueba y las ligas que publico siguen sin estar habilitadas, es por ello que no podrán obtener respuesta satisfactoria de las ligas que usan actualmente, no queda mas que esperar a que el SAT habilite las ligas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 14/08/2018 23:20:57
Pues no se los muchachos, pero en mi caso el CER y el KEY los estoy ocupando de una Firma Electrónica (FIEL o e.Firma)
y en base a ellos estoy generando el PFX con ayuda de OpenSSL.

y probando con la Url que les dieron a los PAC ya hace vario tiempo, porque las URL's "Productivas", siguen sin funcionar.


Tienen de "Productivas" lo que yo tengo de Biólogo Marino.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por ile (2 intervenciones) el 15/08/2018 00:41:59
Es correcto, hasta ayer puede trabajar con el webservice "viejito", hoy ya no funcionó. Hable al SAT, confirmaron que el web service productivo no está habilitado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Francisco Javier (1 intervención) el 15/08/2018 17:58:15
Hola Buen día, yo hable con un amigo de un PAC y me dijo que los web services si tienen un wsdl, solo que el estuvo "jugando" con la URL para agregar el ?wsdl y no me ha querido decir, si me dice como agregarla les comento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 17/08/2018 02:47:19
ojalá y sea cierto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 17/08/2018 19:47:10
Nada aun Francisco?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consumir Web Service Descarga Masiva

Publicado por Agustin (1 intervención) el 21/08/2018 20:55:56
Buenas tardes, en la documentacion del web service dice que se tiene que crear un cliente de servicios web a partir de la URL, es posible esto ? tengo entendido que ya se estan consumiendo, en cada url que trato de genera el service reference al igual que con el wsdl.exe me marca un 400 bad request que ya todos sabemos, a menos que se pudiera en un lenguaje distinto yo lo trato de consumir en c#.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 21/08/2018 20:57:39
Sigue apareciendo el error HTTP ERROR 400, así que aun no es posible consumir los WS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 22/08/2018 00:48:48
Si en el WS tiene a
1
<serviceMetadata httpGetEnabled="false" />
, por lo que he leído, de esa forma no entrega nada, osea que estaría regresando el famoso error HTTP ERROR 400.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 22/08/2018 19:29:15
CocoLiso, pero esto es para ya usar el WebService el que publicó el SAT? y como le pasas ese parámetro?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 22/08/2018 19:30:50
Yo ya probé con:

?wsdl
/WSDL?SingleWSDL

y nada, alguna respuesta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 22/08/2018 19:31:19
Gerardo el SAT es el que tiene que cambiar esa información en sus servicios, para que nosotros podamos hacer uso de los WS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 22/08/2018 19:59:09
Gracias Aleks.


Si ando leyendo eso al respecto, aunque tambien veo que a algunos creadores de Webservices, prefieren hacer esto ocultar la definción, haciendo esto, corrijanme porfavor si estoy equivocado, pero si es asi la cuestion sería como consumir el servicio si el dueño del webservice decide ocultar la Definción de sus servicios.?

https://social.msdn.microsoft.com/Forums/vstudio/en-US/a13b9968-b988-42b1-a149-1d82e7ae047c/how-to-disable-servicemetadata?forum=wcf
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 22/08/2018 22:31:42
Por eso me surgió el pensamiento si no es un privilegio que solo tendrán los PAC's. En el video diejeron que ya estaban funcionando los servicios, pero en una charla aparte la asesora dijo que no y por eso varios suponen que no funcionan porque les no les regresa nada. Creo que hay que mostrar un poquito más de humildad y no dar por asentado nada si no se conoce bien del tema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 22/08/2018 23:54:31
Pues yo en el canal del SAT vi un video de un proveedor suyo, estoy tratando de buscar el video, pero fue muy curioso porque el mismo SAT lo avalaba era un ERP contable que funciona con la nube y decían que aparte de hacer la contabilidad casi automática, aprendiendo de las primeras polillas que contabilizaba el contador, era capaz de bajar los XMLs directo del SAT y esto fue mas o menos al tiempo de lo del webservice.

Como dices CocoLiso quizás solo sea un privilegio para los PAC' o peor aun, solo para ese proveedor en particular, teniendo el cobijo personal del SAT, dejándonos a todos nosotros fuera.


O ustedes que opinan?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 23/08/2018 00:07:32
Gerardo, si no es mucha molestia, ¿podrías enfocarte en tratar de recordar ese video en donde sale el ERP? Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 23/08/2018 00:28:43
CocoLiso, encontré la liga, el Software se llama Gestionix, esta es la liga:


https://www.youtube.com/watch?v=homKXUoKOw0&index=8&list=PLH6Z1vsFvaeTaIXHs90Yp98OjiNxWmZ9d

fue de la ExpoContabilidad electrónica de 2015, pero será posible que si sea de sus privilegiados del SAT?
o como ven?


aunque quien sabe, porque también en ese mismo enlace aparecen Diverza y ContPAQ. mmmmm ta raro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 23/08/2018 01:07:53
Me sugió la duda y quise investigar a ver que onda y me metí a la pagina de ellos a preguntar, no me dijeron mucho pero esto es lo que me respondieron:
Captura_de_pantalla_2018_08_22_a_la_s_18_02_42
Captura_de_pantalla_2018_08_22_a_la_s_18_02_52
Captura_de_pantalla_2018_08_22_a_la_s_18_03_05
Captura_de_pantalla_2018_08_22_a_la_s_18_03_17


Ojo, no estoy promocionando a nadie, para que no vayan a empezar con comentarios negativos, tanto a ustedes como a mi, nos interesa resolver esta nueva problemática y entre desarrolladores debemos apoyarnos, simplemente deseo saber a que nos estamos enfrentando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 23/08/2018 18:13:03
https://elconta.com/2018/08/08/webservice-descarga-masiva-de-xml-del-sat/#comment-62064
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 23/08/2018 19:49:16
Entonces ¿no están operativos los WS porque responde HTTP ERROR 400?

Gerardo, la conversación hubiese estado excelente en esos días en los que no se podía descargar de forma masiva, porque pues igual te dieron la respuesta afirmativa porque ahorita se se pude hacer como se venía haciendo. Gracias por tomarte el tiempo de buscar el video.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 24/08/2018 01:21:06
eso es cierto, no se me ocurrió, hubiera preguntado cuando estaban los captchas del SAT, porque ahorita cualquiera va a decirnos que jalan, pero porque usan el Webscrapping que varios venimos usando.

Por cierto, no se si alguien se le ocurrió en ese entonces, a mi si se me ocurrió, pero no tuve éxito.
No se si recuerdan que los PDFS no tenían captcha, para intervenir los XMLS haciendo webscrepping le sacamos el contenido a los objetos IMG btndescarga, en los PDFs tiene otro nombre, según yo muy sabroso, saque una lista de los PDFS como normalmente lo hago con los XMLs e incluso probé a descargar un XML solito en el navegador y pude hacerlo.


Pero o sorpresa, cuando quise descargar la lista entera con mis sockets, nada de nada, me descargo unos archivos medio raros, tipo XML con metadatos, donde decía que no tengo permiso para descargar esos archivos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Porfirio Cadena (1 intervención) el 24/08/2018 18:31:04
No esten especulando, hablen directamente al SAT y te dicen que el web service para descarga masiva aun no esta disponible, mintieron sobre la informacion del 06 de agosto que ya estaban funcionando, solo publicarón la documentacion, pero el Web Service no responde porque no funciona, ellos mismos te lo dicen ya no pierdan el tiempo ahorita con esto y dediquense a aventajarle a otros pendientes que tengan. Hasta el dia de hoy el servicio al que tenemos acceso todos los contribuyentes es al de la pagina del SAT y esta limitado a las 2,000 XML diarios ahorita nadie tiene un servicio adicional y quien lo diga es que solo esta mintiendo para vender.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 25/08/2018 00:28:16
Gracias Porfirio.

Es bueno escuchar eso, por lo menos a mi me da mas tranquilidad escuchar eso, no se si hablo por todos, pero en mi caso me ha llevado varios años de desarrollo mi app y si se siente horrible que quede truncado un proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Porfirio Cadena (1 intervención) el 25/08/2018 18:43:27
Yo les sugiero que sigan marcando al SAT por lo menos cada 2 dias para más informes, no dejen de marcar y presionar no se conformen con mi respuesta. Aunque muchas veces la gente de allá no sabe ni que decirte presionen y presionen aunque te pasen con 10 gentes distintas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 25/08/2018 21:32:53
Yo nunca he hablado al SAT porque según yo no hay soporte tipo TI para los desarrolladores.

Pero bueno …..No hay peor lucha que la que no se hace ........ Alguien que tenga el Tel. de Soporte del SAT o la url de Chat OnLine para comunicarme con ellos


Si me lo pudieran pasar


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 26/08/2018 00:14:32
JAJAJAJAJA.. Me hiciste el día HalconDivino, !en caliente pues! El caldo se toma caliente. En cuanto lo posteen ojalá que todos los que estamos aquí en el grupo nos lancemos para hacerle montón a HalconDivino.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rafael
Val: 188
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Rafael (67 intervenciones) el 28/08/2018 16:52:39
LES COMENTO, ACABO DE HABLAR AL SAT Y ME TRANSFIRIERON A 4 DEPARTAMENTOS Y EN CADA UNO TUVE QUE EXPLICAR MI DUDA Y ERA DE REPETIRLO, PREGUNTANDO CUANDO REALMENTE ACTIVARÍAN LAS URL'S PARA EL SERVICIO DE DESCARGA MASIVA O WEB SERVICE, Y QUE LAS AUTORIDADES NO AN ACTIVADO HASTA NUEVO AVISO Y QUE ELLOS NO SABEN AUN, A SI ES QUE HAY QUE ESTAR AL PENDIENTE DE CUANDO ACTIVEN EL SERVICIO, PUES YA ESTÁN ENTERADOS, SALUDOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 29/08/2018 00:31:49
Gracias Rafael, por mantenernos al tanto.
Como mencionan los compañeros, mientras para no perder el tiempo podemos adelantarle a nuestros proyectos en otras áreas, para que cuando ya lo habiliten, ahora si podamos atacar ese problema hasta resolverlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por eden (26 intervenciones) el 02/09/2018 01:07:24
Siempre cual fue la url del ws del SAT?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 04/09/2018 22:57:51
Del WS no esta disponible aún. y SAT hoy con fallas.


Que opinan de esta empresa, que dice puede descargar 10 mil XML por día.

Será cierto?

https://ibb.co/iL1xVK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Jesús Valera (3 intervenciones) el 06/09/2018 01:38:47
Buen día, revisando las rutinas que ya se han publicado aquí, les comento que el sitio del SAT esta respondiendo sin limite de descargas, tal y como lo veníamos haciendo antes de las locuras de los captchas, solo tiene la limitante con los cancelados, ya que en el sitio ya no se proporcionan los links para el XML ni el acuse.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 06/09/2018 16:17:29
Buen día, a lo contrario de lo que mencionas aun se limita a solo 2000 comprobantes por día. Por otro lado la descarga de comprobantes Recibidos con estatus de cancelado nunca se han podido descargar. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 06/09/2018 18:14:11
El SAT lo volvió a hacer, ahora para descargar 1 factura es necesario ingresar RFC, Contraseña y Captcha, del web service aun nada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 10/09/2018 16:46:59
https://kosmostek.com/pages/nueva-descarga-masiva-webservice-2018-del-sat
https://www.youtube.com/watch?v=q36FfC4nO7U
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 10/09/2018 18:52:59
JAJAJAJAJAJA... tómala, campeón!!! y los que decían y perjuraban: "No están disponibles porque regresa el ERROR 400" dónde están? JAJAJAJAJAJA...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 10/09/2018 18:56:39
Aun siguen sin estar habilitados los web services del SAT (los publicados en su pagina), hablando con ellos aun comentan que no están habilitados, en el post que comentan sobre su funcionamiento (que por cierto es un desconocido) seguramente es para hacer publicidad a su sitio, además también que no muestra como hace el login a la herramienta (que también esta en ingles la herramienta) y para serles sincero dudo que la información publicada sea verídica, tal vez la herramienta sea verdad y se este conectado pero a sus propios servicios, simplemente por el hecho de vender...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 10/09/2018 19:00:27
O puede ser "un compló" para fregar a la clase baja dándoles únicamente la documentación completa a "los mafiosillos del poder"? En fin. Que alguien salga de las dudas y le diga a uno de sus clientes que le compre un mes del servicio para ver si es o no verdad lo del video.

He dicho.

Saludos.

PD O no será Rafael (ralosoft), que ya consiguió descargarlos pero para no compartir como lo hizo se cambió nick? JAJAJAJAJAJA... mejor ya dejaré de fumar esa "hierbita verde milagrosa", creo que me está haciendo daño.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 11/09/2018 01:40:16
Si, pero creo que estás pensando "erróneamente" ya que según lo que dice aquí:

"Existe la opción de almacenar sus CFDIs y que tenga posterior acceso a los CFDIs sin tener que esperar que se vuelvan a descargar, las descargas también se hacen por paquetes por lo que en lugar de descargar un CFDI a la vez se pueden recuperar en 10 segundos descargas de hasta 2000 cfdis en un paquete de 5 Mb que podrá almacenar en su disco duro y posteriormente descomprimir."

Esas descargas las haces desde su servidor una vez que tiene almacenados tus comprobantes, así que pues se acabó la privacidad de tus documentos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Anónimo (1 intervención) el 11/09/2018 03:26:56
Ya funciona el WS?
Alguien ya probó?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 12/09/2018 17:41:57
Encontre este codigo https://github.com/resuelve/sat-ws en el cual ya funciona la mayoria de los metodos del sat, solo cambiando los datos de los rfcs, certficiados, siguiendo estos pasos para con la fiel generar otro certificado para autenticarse en el ws del sat https://blogs.sap.com/2013/01/05/como-crear-el-paquete-de-certificado-pfx/
Me parece los web services estan activos solo para descarga me parece es igual que la pagina debes esperar un tiempo a que el sat te los genere, ya que el servidio que verfica la solicitud de descarga solo me regresa el estatus aceptada y no el de terminada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Callejero (2 intervenciones) el 12/09/2018 20:15:05
apis ese enlace no funciona ¿podrias compartir el codigo para que los miembros de la comunidad lo analicemos y ya poder hacer las implementaciones del WS?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 12/09/2018 23:47:18
Hola Apis,
¿Has intentado verificar la solicitud 24hrs después de la petición?
Con algún periodo corto por ejemplo un solo día, ¿Te sigue devolviendo que solo se acepto la solicitud?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 13/09/2018 01:21:20
Es lo que voy a hacer esperar las 24 o las 48 horas para la solicitud, si vi que esta caida la web, si gustas te comparto del código solo la parte del wsdl por correo de uno que si funciono un tiempo en c# donde si se generaron las clases para llamar a los servicios, ahorita me parece ese wsdl ya no esta activo y aunque he preguntado en el sat sobre el wsdl la mayoría de los de soporte no conocen nada sobre el wsdl. Ya con ese wsdl que si creo las clases aunque esta en c# espero te pueda servir y sobre ese programes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 13/09/2018 02:26:25
Hola que tal, por lo que veo se les filtro ese ambiente (UAT, comúnmente usado como "Pruebas" antes de subirlo a producción), afortunadamente pude descargar el código antes de que dieran de baja la liga, les comparto el código (es exactamente el mismo y no se le cambio absolutamente nada) http://facturacorporativa.com/portal/publico/sistema_recuperacion.zip, lo guarde en mi servidor, desafortunamente no he podido realizar descargas ya que me dice, Certificado Invalido error 305, no se si como lo hagan ahí este mal como realizan la firma, alguien que si le haya funcionado y pueda compartir su código?

Ojo, tuve que convertir el key y cer en pem y posteriormente a pfx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 13/09/2018 04:16:12
ALEKS

Gracias

Pues deja revisarlo y analizarlo a ver que tan completo esta o cual es el alcance que le dieron y ver como complementarlo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 13/09/2018 05:40:47
Hola aleks, el link de descarga de tu codigo no funciona si gustas te ayudo si pones tu codigo didsponible, puedes cambiar las urls de pruebas por las de producción, a mi también con las de urls de pruebas me decia eso de certificado invalido, lo cambie a las url de produccion y ya avance hasta el web service que verifica el estatus de la descarga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 13/09/2018 16:42:05
Como lo pense debía esperar un dia para obtener la lista de ids, ya solo me falta el ultimo servicio no guarde los suficientes ids para pruebas y segun esta la documentacion solo están disponibles 72 horas y solo 2 intentos, hice los 2 intentos de descarga el ultimo servicio donde de acuerdo a mi certificado solo tenia un cfdi y luego ya me responde 404, igual voy a probar con otro que me de mas ids y generar mas de pruebas mas ya probaria hasta mañana ya que no tengo ids nuevos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 13/09/2018 16:47:03
Hola, resolviste el problema al guardar el archivo?
1
2
3
4
5
6
7
8
private void ProcessFile(Stream package)
{
    // Do something here
    var fileStream = File.Create("C:\\sat-output\\LAN7008173R5_" + new Random().Next(0, 1000000).ToString());
    package.Seek(0, SeekOrigin.Begin); ---->Error
    package.CopyTo(fileStream);
    fileStream.Close();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 13/09/2018 16:55:16
En esa parte me quede, solo que ya no tengo ids para realizar mas pruebas iba a probar esto
1
2
3
4
5
6
7
8
private void ProcessFile(Stream package)
{
    using (System.IO.FileStream output = new System.IO.FileStream(@"d:\\docs\\arcvhivo" + new Random().Next(0, 1000000).ToString(), FileMode.Create))
    {
        package.CopyTo(output);
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Callejero (2 intervenciones) el 13/09/2018 22:16:01
Compañeros

A quienes ya lograron tener acceso al web service ¿podrian compartir un poco con la comunidad?

- ¿Que URL utilizan, la que aparece en los XMLs, o la que proporciona el SAT?
- ¿Como generan el PFX, tal cual como aparece en el tutorial?
- A los que no usamos mucho C#, ¿podrian ayudarnos a generar una abstraccion con herramientas estandares?

Aqui en la oficina hemos probado con CURL, pero no logramos obtener respuesta

curl https://srvsolicituddescargamasteruat.cloudapp.net/Autenticacion/Autenticacion.svc --cert client.pem:contrasena --key key.pem --cacert ca.pem --insecure

Les agradecemos compañeros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 14/09/2018 00:18:14
Que tal Colegas

La famosa eFirrma es la FIEL o es otro certificado ???
Por lo que estuve leyendo aquí en el foro con la FIEL se pueden autentificar ??? .... Es correcto ???


Las urls que vienen en el programa SAT-WS
https://srvsolicituddescargamasteruat.cloudapp.net/SolicitaDescargaService.svc
https://srvsolicituddescargamasteruat.cloudapp.net/VerificaSolicitudDescargaService.svc
https://srvdescargamasivatercerosuat.cloudapp.net/DescargaMasivaTercerosService.svc
https://srvsolicituddescargamasteruat.cloudapp.net/Autenticacion/Autenticacion.svc

Las cambiaron por las urls que vienen en la documentacion ????
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/VerificaSolicitudDescargaService.svc
https://cfdidescargamasiva.clouda.sat.gob.mx/DescargaMasivaService.svc


Les agradeceria sus respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 14/09/2018 00:39:23
Hola! si las url que vienen en el app config las cambie por las del sat esas url supongo en algún momento estuvieron disponibles y con esa generaron el código del wsdl, por mas que pregunto en el sat no logro obtener las urls del wsdl nuevo alguno que si este activo

Con los archivos de la fiel, efirma, firma electronica avanzada segui este tutorial, esos se los pase al servicio de autenticar
https://blogs.sap.com/2013/01/05/como-crear-el-paquete-de-certificado-pfx/

Del codigo original ws-sat hay un codigo signature que todas las peticiones deben llevarlo, solo el primer servciio lo tiene
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 14/09/2018 06:45:00
Usando la FIEL (.cer .key y la contraseña) genere el archivo pfx con su contraseña y la cambie por la que venia en el programa.
Cambie el RFC que viene en el programa por el de la FIEL
Cambie las urls del archivo config por las correspondientes que vienen en la documentación

Y fue todo lo que le cambié … no le he hecho cambios a la logica

Lo que comentaba APIS de "" Del codigo original ws-sat hay un codigo signature que todas las peticiones deben llevarlo, solo el primer servciio lo tiene "" No aplique ninguna remediacion o cambio.

Al correr el programa creo yo que si se pudo AUTENTIFICAR porque llegó hasta la parte de Verificación

Me falla en este punto
En el estatus me dice que es una referencia NULL

ALGUNA IDEA DE PORQUE ME SALE ESTE ERROR ???

ERRORWS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 14/09/2018 15:44:54
hola! esta en null porque ahi lo cambie a un do while, lo del signature va en cada request de cada servicio, hay que crear nuevos metodos signature para cada servicio
request.Signature = new Signer(path, password).GetSignature();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 14/09/2018 16:08:12
He llegado al ultimo servicio ya no me marca error, pero ahora el archivo no se que extensión es, lo probe con xml nada, lo probe con pdf alguien ha logrado saber leer el archivo que regresa?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 14/09/2018 16:09:54
Es extensión .ZIP
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 14/09/2018 16:33:42
Apis
cuando tu dices "" esta en null porque ahi lo cambie a un do while, """


No te entiendo … quitaste la condicionante o a que te refieres ... la verdad no entiendo ???

Pudieras compartir esa parte que cambiaste para entender mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Desconocido (7 intervenciones) el 14/09/2018 16:39:35
Hola halcón, según tú ibas a analizar el código y contribuir con el mismo, desde mi punto de vista si no puedes validar un null di con toda confianza que te pasen el código funcionando porque no le entiendes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 14/09/2018 18:42:49
Hola Desconocido

Pues asi es ….ya analice el codigo … tan pronto pueda contribuir lo hare …..es mi mejor intencion tal como lo he hecho en anteriores ocaciones. como en la descarga del web scraping

Pudieras por fa... compartir esta parte del codigo te lo agradeceria.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 14/09/2018 23:53:52
Te marca error porque en esa parte aun no mandas llamar al servicio, por lo cual aún no tienes respuesta, ese servicio una vez que mandas la solicitud de descargar la información tarda en responder lo que he visto es al menos 24 horas, por lo cual ese while estaria esperando de 24 a 48 horas por lo cual igual creo es mejor quitar el while y guardar los ids en donde gustes e intentar con los ids generados por el servicio anterior al día siguiente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 15/09/2018 00:49:06
Ok.
Ahora ya entendí.

Hay que esperar horas ...Y reinventar con los mismos ids..



Apis. Gracia por tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Apex Application | Software Development (3 intervenciones) el 15/09/2018 10:05:15
En lo personal ya logre autenticarme en el Web Service de Descarga Masiva del SAT con un Token de seguridad mediante FIEL implementando Java 8, AXIS 2 y Rampart para el Policy de seguridad bajo el estándar de Oasis, la tortura esta en que el Web Service no publica WSDL sin embargo si recibe solicitudes, además de que la documentación del SAT no detalla como crear una solicitud SOAP implementando con un Header de seguridad basado en W3C, la ventaja de este servicio es que te da hasta 200,000 CFDI's en una sola solicitud sin implementar cosas extrañas como un "Bot" que se autentique al portal del contribuyente con su FIEL o Contraseña y dé "miles de clic's" para descargar los CFDI además de tardado y a espensas de disponibilidad y carga del portal del SAT, además de que en algún momento volverán a habilitar los Captcha, en fin los primeros que lleguen a la meta serán los ganadores, hasta ahora solo conozco a tres empresas de tecnología que ya lograron consumir el servicio incluyéndome (costó una semana de batalla en las noches y sábado-domingo).

Aquí un ejemplo del Response en este preciso momento (omití el "número de serie" por seguridad de la FIEL implementada):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version='1.0' encoding='utf-8'?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
 <s:Header>
  <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
   <u:Timestamp u:Id="_0">
    <u:Created>2018-08-30T03:15:19.449Z</u:Created>
    <u:Expires>2018-08-30T03:20:19.449Z</u:Expires>
   </u:Timestamp>
  </o:Security>
 </s:Header>
 <s:Body>
  <AutenticaResponse xmlns="http://DescargaMasivaTerceros.gob.mx"> <AutenticaResult>eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1MzU1OTg5MTksImV4cCI6MTUzNTU5OTUxOSwiaWF0IjoxNTM1NTk4OTE5LCJpc3MiOiJMb2FkU29saWNpdHVkRGVjYXJnYU1hc2l2YVRlcmNlcm9zIiwiYWN0b3J0IjoiMzAzMDMwMzAzMTMwMzAzMDMwMzAzMDM0MzAzNTM0MzczNTMyMzkzOSJ9.iWNl9her3ZuLXE_iCEvljcJUBx8rhlAGONKjvaNmPaE%26wrap_subject%"AQUI VA EL NUMERO DE SERIE DE LA FIEL"</AutenticaResult>
  </AutenticaResponse>
 </s:Body>
</s:Envelope>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cancelación con Aceptación

Publicado por Apex Application | Software Development (3 intervenciones) el 15/09/2018 10:19:36
También tengo ya implementado los Web Services de cancelación con aceptacion, sin embargo aquí se requiere ser pac para autenticarse, tengo un servicio web intermedio que se auténtica y crea todas las solicitudes de cancelación, aceptación/rechazo, consulta de relacionados, todos firmados con el csd, ya no es necesario que el desarrollador los firme, en Java 8.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cancelación con Aceptación

Publicado por CocoLiso (44 intervenciones) el 15/09/2018 15:02:43
Bueno, Apex Application, se agradece mucho tu aporte. Gracias por participar, pero creo que te equivocaste de foro, aquí no es mercadolibre.com.mx.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cancelación con Aceptación

Publicado por Apex Application | Software Development (3 intervenciones) el 15/09/2018 16:05:44
Bueno es que quieres todo gratis, todos estamos haciendo un esfuerzo, de eso se trata la competitividad, yo tengo la solución en java para aplicativos web y por lo que veo en el foro aquí se tiene más en. NET, no estoy peleado con ello yo inicié en esta tecnología y hasta ahora me agrada también, solo era un comentario pero tampoco soy una empresa Open Source, y claro que si alguien gusta acelerar su proceso de integración con gusto apoyo pero también pago sueldos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cancelación con Aceptación

Publicado por CocoLiso (44 intervenciones) el 15/09/2018 20:30:17
Ningún problema con eso, amigo, créeme que te entiendo, pero la idea de formar este grupo SIEMPRE ha sido la de compartir el conocimiento. Desde el hilo anterior se hizo enfásis en que todo serían aportes, no ventas, para eso hay MUCHOS lugares donde se pueden ofrecer por ese motivo AMABLEMENTE bateamos a los que vienen a ofrecer sus servicios. En cuanto a lo de que actualmente sólo son 4 los que han encontrado la solución no tengas duda que pronto serán muchos más las que contaremos con ella, en lo personal he estado un poco alejado en la investigación por cuestiones de trabajo pero espero muy pronto volver a hacer pruebas.

Aprovecho para hacer un reconociento a HalconDivino, distinguido miembro de este selecto grupo, quien fué el que donó TODO su trabajo en cuanto a la generación de los xmls y sin el cual muchos estaríamos en tinieblas y aún sigue compartiendo sus logros.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 17/09/2018 05:04:14
Hola;

Siguiendo los pasos de @apis

1.-Crear el archivo pfx usando el cer y key de la FIEL con el cual se probara la descarga ws
2.-Modificando el Metodo Requester.SolicitudDescargaMasivaTercero con los valores del RFC de la descarga

Si me genera un token, pero al hacer el primer MakeRequest me lo manda vacio, por
tal motivo imprimir el codEstatus y me arroja un error 305

¿Como puedo solucionar este error?

Según documentación del SAT este error se debe a certificado invalido.
Captura-de-pantalla-2018-09-16-a-las-22.00.59

1
2
3
4
5
6
7
8
             // Make a request to download both, received invoices and issued ones
                Request request = new Request(path, password, token);
 
                string idIssuerRequest = request.MakeRequest(0).CodEstatus;
                string idReceivedRequest = request.MakeRequest(1).IdSolicitud;
 
                Console.WriteLine("Issued invoices request id = {0}", idIssuerRequest);
                Console.WriteLine("Received invoices request id = {0}", idReceivedRequest);


ERROR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 17/09/2018 05:51:42
Violeta

No se si ya cambiaste las urls que vienen en el archivo config por las de la documentación del SAT que son estas
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc
https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/VerificaSolicitudDescargaService.svc
https://cfdidescargamasiva.clouda.sat.gob.mx/DescargaMasivaService.svc

En cuanto al RFC yo hice un FIND REPLACE en toda la solución y creo que se substituye como en 4 o 6 lugares diferentes . No se si es en un mismo método o son mas. la verdad es que no recuerdo.
.
Y por ultimo APIS comentó lo siguiente """ Del codigo original ws-sat hay un codigo signature que todas las peticiones deben llevarlo, solo el primer servciio lo tiene """" que tambien deberias conciderarlo ..

Por otro lado hay que guardar los IDs generados para consultarlo posteriormente ... Apis comentó que pueden pasar horas para que la solicitud de descarga este lista.(Que es en este punto que estoy resolviendo ) Y volver a intentar pero con los IDs que ya guardaste.

Espero te sirva mis comentarios

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 17/09/2018 06:09:57
Muchas Gracias por tu respuesta Halcon Divino.

Lo único que no entiendo es:

"Y por ultimo APIS comentó lo siguiente """ Del codigo original ws-sat hay un codigo signature que todas las peticiones deben llevarlo, solo el primer servciio lo tiene """" que tambien deberias conciderarlo .."

Me puedes dar un ejemplo, please.


Y cual es la diferencia de estas lineas:?
string idIssuerRequest = request.MakeRequest(0).IdSolicitud;
string idReceivedRequest = request.MakeRequest(1).IdSolicitud;

//Si el parametro llama a 2 metodos con nombre diferente , pero con los mismo valores?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 17/09/2018 07:32:37
@apis

Tienes toda la razón , se debe crear un public Requester.SignatureType Signature() //Soluciona el error de sello mal formado
por cada tipo de Clase que ocupe signature.



//Ya voy en la parte de Solicitud Aceptada.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 17/09/2018 17:57:24
Hola chicos?

Como solucionaron este mensaje de errror:

Se ha excedido la cuota de tamaño máximo de los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace correspondiente.

1
2
3
4
5
6
7
8
9
foreach (var item in packages)
{
    Stream package;
    Downloader.RespuestaDescargaMasivaTerceros message = downloaderClient.Descargar(Request(item.ToString()), out package);
 
    if (message.CodEstatus == "5000")
        ProcessFile(package);
 
}


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 17/09/2018 18:26:12
¿Alguien sabe como trasladar la carpeta Connected Services o modificarla para VB.NET?

Sí, ya sé, obsoleto pero pues no me gustan los puntos y comas.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 230
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Cesar (79 intervenciones) el 17/09/2018 18:51:09
Hola.

Ese parametro lo modificas en tu archivo Config, en el binding de la referencia al servicio web.

Tambien te sugiero ampliar otros (estan marcados en la imagen).

1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Susy (1 intervención) el 17/09/2018 21:44:10
Alguien podria apoyarme, por fa...?

Ya genere tokens e ids para hacer pruebas como mencionan pero en donde o como hago la peticion? ayudenme por favor ya me duele la cabeza de tanto pensar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 18/09/2018 00:38:56
Susy

Una forma fasil de hacer las peticiones en forma diferida es haciendo lo siguiente

Comentaríza el Request …. para ya no solicitar nuevos Ids. … No tiene caso ya que vas a usar los anteriores previamente guardados.
//Request request = new Request(path, password, token);

Y substituye los ids por los que TU YA TIENES GUARDADOS


1
2
string idIssuerRequest = "ab956117-0f5a-4492-b776-660c4d1091d4"; // request.MakeRequest(0).IdSolicitud;
string idReceivedRequest = "c715d8a3-52c6-4b45-bb36-244fb07591da"; // request.MakeRequest(1).IdSolicitud;


El código quedaría así


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Get the authentication token
Autentication autentication = new Autentication(path, password);
var token = autentication.AuthenticationToken();
if (token != null)
{
    Console.WriteLine("Autentication token = {0}", token);
 
    // Make a request to download both, received invoices and issued ones
    //Request request = new Request(path, password, token);
 
    string idIssuerRequest = "ab956117-0f5a-4492-b776-660c4d1091d4"; // request.MakeRequest(0).IdSolicitud;
    string idReceivedRequest = "c715d8a3-52c6-4b45-bb36-244fb07591da"; // request.MakeRequest(1).IdSolicitud;
 
    Console.WriteLine("Issued invoices request id = {0}", idIssuerRequest);
    Console.WriteLine("Received invoices request id = {0}", idReceivedRequest);
 
    // Verify the requests to know when the files are ready to download
    Verification verification = null;
    Verifier.RespuestaVerificaSolicitudDescMasTercero response = null;
 
    if (idIssuerRequest != null)
    {
        verification = new Verification(idIssuerRequest, token);
        response = verification.MakeRequest();
 
        // Download packages for issued invoices
        if (response.IdsPaquetes != null)
        {
            DownloadPackage download = new DownloadPackage(response.IdsPaquetes, token);
 
            download.MakeRequest();
        }
    }
 
    if (idReceivedRequest != null)
    {
        verification = new Verification(idReceivedRequest, token);
        response = verification.MakeRequest();
 
        // Download packages for received invoices
        if (response.IdsPaquetes != null)
        {
            DownloadPackage download = new DownloadPackage(response.IdsPaquetes, token);
            download.MakeRequest();
        }
    }
}
Console.ReadLine();


Espero te sirva .

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 18/09/2018 00:42:59
Hola apis, esto y checando el archivo que subiste, hasta donde estoy leyendo, le tengo que cambiar las URLs de prueba por las URL definitivas cierto, en cualquier en el proyecto donde las encuentre verdad?

Y desde luego cambiar el RFC, el directorio del Certificado y su contraseña.
Veo también que el certificado es P12, es lo mismo que PFX, por que lo acabo de generar con openSSL del mismo modo, solo que le puse extension P12 en vez de PFX.

Lo estaré probando para ver que tal va. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 00:59:44
@Halcon Divino

Porque hacer la misma consulta 2 veces?

/request.MakeRequest(0).IdSolicitud;
request.MakeRequest(1).IdSolicitud;

El parametro 0 y 1 llaman na funcion identica.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 18/09/2018 01:40:08
@Violeta, permíteme contestarte, porque el primero es para obtener el ID de las emitidas y el segundo para el de las recibidas.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 18/09/2018 01:41:32
@Gerardo, amigo, no hay necesidad de cambiarle la extensión.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 01:44:22
Gracias @cocoliso

No habia notado el cambio de emisor y receptor..

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 02:15:53
@cocoliso

Lograste solucionar este problema:

Estoy en la parte donde se descargan los packages pero me manda este error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 02:16:14
@cocoliso @halcon divino @publicogral

Lograste solucionar este problema:

Estoy en la parte donde se descargan los packages pero me manda este error.


Ayuda please!!
Captura-de-pantalla-2018-09-17-a-las-19.15.15
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de CocoLiso
Val: 46
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (23 intervenciones) el 18/09/2018 02:33:06
@Violeta, soy nuevo en C#, entonces sí estoy batallando un poco, todavía no llego a eso. Ahora, humildemente, te pido ayuda para solventar este problema:


error

Saludos.

PD Ya estoy enviando los ID que guardé ayer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 02:40:21
Solucion; @cocoliso

Antes de ir por IdsPaquetes, verifica su CodigoEstatus que este en solicitud Aceptada y que IdsPaquetes no sea nulo.

SI IdsPaquetes es nullo significa que el SAT aún no atiende tu solicitud. (tarda de 12 a 48 horas)-

CodEstatus = 5000
y
response.IdsPaquetes !=null
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 18/09/2018 03:10:41
CocoLiso

Yo lo resolvi de esta manera

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public Verifier.RespuestaVerificaSolicitudDescMasTercero MakeRequest()
{
    Verifier.VerificaSolicitudDescargaServiceClient verifierClient = new Verifier.VerificaSolicitudDescargaServiceClient();
 
    //X509Certificate2 cert = new X509Certificate2(path, password, X509KeyStorageFlags.DefaultKeySet);
    //requesterClient.ClientCredentials.ClientCertificate.Certificate = cert;
 
    Verifier.RespuestaVerificaSolicitudDescMasTercero response = null;
    using (new OperationContextScope(verifierClient.InnerChannel))
    {
        // Add a HTTP Header to an outgoing request
        HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
        requestMessage.Headers["Authorization"] = "WRAP access_token=\"" + token + "\"";
        OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
 
        // Verify the process until the request is ready
        response = verifierClient.VerificaSolicitudDescarga(Request());
        int Estado = response.EstadoSolicitud;
        while (Estado != 3)
        {
            response = verifierClient.VerificaSolicitudDescarga(Request());
            Estado = response.EstadoSolicitud;
 
            if (Estado > 3 || Estado == 0)
            {
                break;
            }
        }
    }
 
    return response;
}


Estado = 0 // Token no valido
Estado = 1 // Aceptada
Estado = 2 // En Proceso
Estado = 3 // Terminada
Estado = 4 // Error
Estado = 5 // Rechazada
Estado = 6 // Vencida

Por otro lado tienes que crear el Metodo SignatureVerifier() y SignatureDownloader() adentro de la clase Signer

Quedando de esta manera la clase

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using System.Security.Cryptography.X509Certificates;
 
namespace sat_ws
{
    class Signer
    {
        string path, password;
 
        public Signer(string path, string password)
        {
            this.path = path;
            this.password = password;
        }
 
        public Requester.SignatureType Signature()
        {
            X509Certificate2 cert = new X509Certificate2(path, password, X509KeyStorageFlags.DefaultKeySet);
            Requester.SignatureType signature = new Requester.SignatureType();
            signature.SignedInfo = new Requester.SignedInfoType();
            signature.SignedInfo.CanonicalizationMethod = new Requester.CanonicalizationMethodType();
            signature.SignedInfo.CanonicalizationMethod.Algorithm = "Algorithm";
            signature.SignedInfo.SignatureMethod = new Requester.SignatureMethodType();
            signature.SignedInfo.SignatureMethod.Algorithm = "Algorithm";
            signature.SignedInfo.Reference = new Requester.ReferenceType
            {
                DigestMethod = new Requester.DigestMethodType
                { Algorithm = "Algorithm" },
                DigestValue = cert.GetCertHash()
            };
            signature.SignatureValue = cert.GetPublicKey();
            signature.KeyInfo = new Requester.KeyInfoType
            {
                X509Data = new Requester.X509DataType
                {
                    X509IssuerSerial = new Requester.X509IssuerSerialType
                    {
                        X509IssuerName = cert.IssuerName.Name,
                        X509SerialNumber = cert.GetSerialNumberString()
                    },
                    X509Certificate = cert.RawData
                }
            };
            return signature;
        }
 
 
        public Verifier.SignatureType SignatureVerifier()
        {
            X509Certificate2 cert = new X509Certificate2(path, password, X509KeyStorageFlags.DefaultKeySet);
            Verifier.SignatureType signature = new Verifier.SignatureType();
            signature.SignedInfo = new Verifier.SignedInfoType();
            signature.SignedInfo.CanonicalizationMethod = new Verifier.CanonicalizationMethodType();
            signature.SignedInfo.CanonicalizationMethod.Algorithm = "Algorithm";
            signature.SignedInfo.SignatureMethod = new Verifier.SignatureMethodType();
            signature.SignedInfo.SignatureMethod.Algorithm = "Algorithm";
            signature.SignedInfo.Reference = new Verifier.ReferenceType
            {
                DigestMethod = new Verifier.DigestMethodType
                { Algorithm = "Algorithm" },
                DigestValue = cert.GetCertHash()
            };
            signature.SignatureValue = cert.GetPublicKey();
            signature.KeyInfo = new Verifier.KeyInfoType
            {
                X509Data = new Verifier.X509DataType
                {
                    X509IssuerSerial = new Verifier.X509IssuerSerialType
                    {
                        X509IssuerName = cert.IssuerName.Name,
                        X509SerialNumber = cert.GetSerialNumberString()
                    },
                    X509Certificate = cert.RawData
                }
            };
            return signature;
        }
 
 
        public Downloader.SignatureType SignatureDownloader()       {
            X509Certificate2 cert = new X509Certificate2(path, password, X509KeyStorageFlags.DefaultKeySet);
            Downloader.SignatureType signature = new Downloader.SignatureType();
            signature.SignedInfo = new Downloader.SignedInfoType();
            signature.SignedInfo.CanonicalizationMethod = new Downloader.CanonicalizationMethodType();
            signature.SignedInfo.CanonicalizationMethod.Algorithm = "Algorithm";
            signature.SignedInfo.SignatureMethod = new Downloader.SignatureMethodType();
            signature.SignedInfo.SignatureMethod.Algorithm = "Algorithm";
            signature.SignedInfo.Reference = new Downloader.ReferenceType
            {
                DigestMethod = new Downloader.DigestMethodType
                { Algorithm = "Algorithm" },
                DigestValue = cert.GetCertHash()
            };
            signature.SignatureValue = cert.GetPublicKey();
            signature.KeyInfo = new Downloader.KeyInfoType
            {
                X509Data = new Downloader.X509DataType
                {
                    X509IssuerSerial = new Downloader.X509IssuerSerialType
                    {
                        X509IssuerName = cert.IssuerName.Name,
                        X509SerialNumber = cert.GetSerialNumberString()
                    },
                    X509Certificate = cert.RawData
                }
            };
            return signature;
        }
 
 
    }
}

Y estos 2 nuevos metodos SignatureVerifier() y SignatureDownloader() los tienes que llamar en cada request tal como lo dijo APIS


1
2
3
4
5
6
7
8
9
10
11
12
13
14
private Verifier.VerificaSolicitudDescargaMasivaTercero Request()
{
    string path, password;
    path = @"C:\FielHerculesPFX\CSI121206SP0.pfx";
    password = "23456789";
 
    Verifier.VerificaSolicitudDescargaMasivaTercero request = new Verifier.VerificaSolicitudDescargaMasivaTercero();
    request.IdSolicitud = id;
    request.RfcSolicitante = "CSI121206SP0";
 
    request.Signature = new Signer(path, password).SignatureVerifier();
 
    return request;
}


1
2
3
4
5
6
7
8
9
10
11
12
private Downloader.PeticionDescargaMasivaTerceros Request(string packageId)
{
    string path, password;
    path = @"C:\FielHerculesPFX\CSI121206SP0.pfx";
    password = "23456789";
 
    Downloader.PeticionDescargaMasivaTerceros request = new Downloader.PeticionDescargaMasivaTerceros();
    request.IdPaquete = packageId;
    request.RfcSolicitante = "CSI121206SP0";
    request.Signature = new Signer(path, password).SignatureDownloader();
    return request;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 18/09/2018 03:30:39
Ya estoy en la Descatga pero me marca este error


Modifique el config de esta manera en el nodo bindings

1
2
3
4
5
6
7
8
9
10
11
<bindings>
    <basicHttpBinding>
        <binding name="basicHttp"
            allowCookies="true"
            maxReceivedMessageSize="20000000"
            maxBufferSize="20000000"
            maxBufferPoolSize="20000000">
            <readerQuotas maxDepth="32"
                maxArrayLength="200000000"
                maxStringContentLength="200000000"/>
        </binding>



PERO AUN ASI ME FALLA CON EL MISMO ERROR


Como solucionaron este error ???

Alguna idea de como resolverlo ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 03:42:50
Se soluciona el el app.config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ISolicitaDescargaService" maxBufferSize="1073741824"
      maxReceivedMessageSize="1073741824">
      <security mode="Transport" />
    </binding>
    <binding name="BasicHttpBinding_IVerificaSolicitudDescargaService" maxBufferSize="1073741824"
      maxReceivedMessageSize="1073741824">
      <security mode="Transport" />
    </binding>
    <binding name="BasicHttpBinding_IDescargaMasivaTercerosService" maxBufferSize="1073741824"
      maxReceivedMessageSize="1073741824">
      <security mode="Transport" />
    </binding>
    <binding name="BasicHttpBinding_IAutenticacion" maxBufferSize="1073741824"
      maxReceivedMessageSize="1073741824">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="Certificate" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 03:52:53
@Halcon Divino

Lograste solucionar este error?


Captura-de-pantalla-2018-09-17-a-las-19.15.15
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 18/09/2018 04:46:25
Violeta

Gracias !!! …… Si me funciono lo del app.config

Pero ya estoy igual que tu

El programa me falla EXACTAMENTE en la misma INSTRUCCION que a ti con el mismo ERROR


package.Seek(0, SeekOrigin.Begin);

Estoy checando en google a ver si encuentro alguna solucion .


Alguien del grupo que ya lo haya solucionado ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 18/09/2018 05:36:40
También debes cambiar el parametro del signature, lo que comentaron tambien en post previos de modificar el achivo app.config para permitir un tamaño mas grande en la respuesta del web service, en un post previo habia compartido como obtener el archivo repito el codigo, es un zip por lo cual con otro paquete nuget para archivos zip lo pueden descomprimir

1
2
3
4
5
6
7
8
private void ProcessFile(Stream package)
{
    using (System.IO.FileStream output = new System.IO.FileStream(@"d:\\docs\\arcvhivo.zip" ), FileMode.Create))
    {
        package.CopyTo(output);
 
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 18/09/2018 05:39:06
El problema de EL METODO ESPECIFICADO NO ES COMPATIBLE lo solucione comentarizando la linea

// package.Seek(0, SeekOrigin.Begin);
supongo que esta instrucción lo que hace es indicarle al apuntador que se posicione al inicio del paquete.
pero por lo que leí en google da a entender que ya es obsoleto este método


Además al nombre del archivo le puse extensión zip

var fileStream = File.Create("C:\\sat-output\\CSI121206SP0_" + new Random().Next(0, 1000000).ToString() + ".zip");

El método quedo de esta manera


1
2
3
4
5
6
7
8
9
10
private void ProcessFile(Stream package)
{
    // Do something here
    var fileStream = File.Create("C:\\sat-output\\CSI121206SP0_" + new Random().Next(0, 1000000).ToString() + ".zip");
 
    //   package.Seek(0, SeekOrigin.Begin);
 
    package.CopyTo(fileStream);
    fileStream.Close();
}


Finalmente ya pude descargar el archivo zip con todos los xml solo procedí a descomprimirlo y ya me arrojo todos los xml
Solo me falta verificar que sean todos los xml.


Pero por la gran cantidad de xml creo que todo esta correcto.

Bueno .... Ya mañana le doy una repasada a la aplicacion y se las posteo ya con todos los cambios y agregados que le hice.


Gracias Grupo por el apoyo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 18/09/2018 05:48:35
@Halcon Divino

Gracias por tus contribuciones.


He notado tambien otro error comun al autenticar:

1
2
3
Excepción no controlada del tipo 'System.ServiceModel.Security.MessageSecurityException' en mscorlib.dll
 
Información adicional: La marca de tiempo de seguridad no es válida porque la hora de creación ('2018-09-18T03:47:39.529Z') es una hora futura. La hora actual es '2018-09-18T03:42:26.647Z' y el sesgo de reloj permitido es '00:05:00'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 18/09/2018 13:45:58
@Violeta, ¿y si intentarás retrasando la hora de la PC?

@HalconDivino, pues ¿qué se puede decir, otra vez gracias? creo que ya está muy trillado eso para con tu persona. Una vez más te dedicaste a "masticar" el codigo para otorgarlo "papilla". Un botoncito más para los que dudaban de tu capacidad y bondad. Avísenle a los 4 que ya tenían la solución para que los agreguen a la lista de la competitividad.

Por mi parte a seguirme peleando con los ";".

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 18/09/2018 16:39:44
Gracias CocoLiso!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 18/09/2018 17:28:04
De nada amigo.

Olvidé agradecer a la figura principal de este hilo que, sin duda, fué @apis, ya que gracias a él se pudo dar con la forma de cómo consumir esos servicios que de otra manera hubiera sido muy difícil.

@Violeta, gracias amiga por la ayuda brindada.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 18/09/2018 20:22:28
Una preguntota, ¿cuanto tiempo tarda en cambiar de solicitud aceptada?
Supongo que si no cambia de solicitud aceptada no se puede descargar ¿cierto?

Porque si se deja el while tendrán que pasar horas (supongo) hasta que se puedan descargar esos archivos

Corrijanme si me equivoco

Por cierto, gracias a todos por sus avances :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 18/09/2018 20:43:38
Aleks

HOLA que tal !!!!

¿cuanto tiempo tarda en cambiar de solicitud aceptada?
R... Yo hice 4 solicitudes para unos 100 XML se tardo al rededor de 5 minutos .. Para 1,000 XML se tardo entre 15 a 20 minutos y supongo que cuando sean 20,000 XML pues se debe de tardar mas … de hecho en la aplicación de WebSrcaping también se tarda en descargar 1,000 o 4,000 XML hasta horas ….No los descarga en 3 minutos.....No se, ya que todo mundo haga uso del WS pues quizás se tarde mas en contestar..


Supongo que si no cambia de solicitud aceptada no se puede descargar ¿cierto?

R.. Es correcto el Estado debe de ser 3 para indicar que esta TERMINADA .



Porque si se deja el while tendrán que pasar horas (supongo) hasta que se puedan descargar esos archivos

R... Mi experiencia fue que al ciclarte en el Whiler para esperar a que te de el Estatus 3 va a tronar primero. … No dura ni 5 minutos y te manda un error . Es demasiado ciclaje, a menos que pongas algún SLEEP de 3 minutos para no consumir recursos.... .
En algunos casos manda algun error de excpcion y en otras te manda el valor de 0 en el Estado Token ya no es valido.
Aparentemente el Token solo tiene unos minutos de duración.


Este programa es un PROTOTIPO habria que partirlo en cuando menos 2 aplicaciones mucho mas amigables y funcionales.
Una que haga la peticion de Solicitud de los XML a descrgar y guardar los IDs
Y la Otra que verifique si ya esta terminada la solicitud con los IDs que se guardaron y de ser asi que la descrge el ZIP de lo contrario que mande un mensje de favor de reintentar mas tarde.

Mas o menos algo por el estilo.


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 18/09/2018 20:50:40
Hola que tal Halcon,

Muchas gracias por tus comentarios, entonces no queda mas que esperar, porque realmente no se cuantas facturas sean (ya pasaron mas de 20 min para la primera petición)

Yo ya pude hacer una interfase un poco mas amigable, si llega a funcionar, les adjunto el proyecto ya para que cada quien haga los cambios que guste.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 19/09/2018 06:25:54
@Gerardo

Es un error diferente ese no me ha salido.

Alguno de ustedes tiene un snippet para generar el pfx desde .net? vb o c#

Y en cuanto al tiempo de descarga de los paquetes, en mis pruebas tarda de 0 a 12 horas con paquetes maximos de 5000.

Saludos chicos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Courtois García (15 intervenciones) el 19/09/2018 06:34:34
Hola,

Sí te interesa el 13 de agosto les puse en este hilo como generar un pfx a partir de el cer, key y la clave privada. Está en C# usando Bouncy Castle el cual puedes obtener con Nuget.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 19/09/2018 06:54:55
@Courtois García

Si recuerdo tu post...


Pero me parece que publicaste la DLL, no tienes una guia de como usar esa libreria?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 242
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Halcón Divino (193 intervenciones) el 19/09/2018 15:53:36
Aquí les dejo la url de descarga de la aplicación ya actualizada con todos los cambios y agregados que se le hicieron
Solo seria que le cambien el RFC y el Archivo PFX ...En teoría con eso debería de funcionar.
Y Cambiar el rango de fecha inicial y final.

Espero les sirva


https://drive.google.com/file/d/1MLlXK8FKykn-l4Z2SW_8VXqU8K9PqVoZ/view?usp=sharing


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 76
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Aleks (42 intervenciones) el 19/09/2018 17:13:23
Así como Halcón Divino pone su proyecto, yo también aporto el mío https://www.dropbox.com/s/11xcnh1vvfsevrp/PruebaRecuperarFacturas.zip?dl=0

-Tiene una simple interfas grafica
-Se debe elegir archivo pfx, ingresar rfc y contraseña
-Puedes crear peticiones (por rango de fechas emitidas o recibidas)
-Guarda las peticiones en un archivo xml
-Se pueden ver las peticiones y si se da click en descargar cambia el estado dependiendo lo que responda el sat

Espero que les sea de ayuda y gracias por todas sus aportaciones.
Pueden hacer los cambios que gusten
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consumir Web Service Descarga Masiva

Publicado por Courtois Garcia (15 intervenciones) el 19/09/2018 17:16:23
Hola,

La documentación de la biblioteca está en línea en el sitio (https://www.bouncycastle.org/csharp/index.html). Es algo confusa, lo que puse es la implementación de la biblioteca para que a partir de tu CER, tu KEY y tu contraseña puedas obtener el PFX. Te anexo un ejemplo de cómo podrías consumirla.

El escenario sería el siguiente: Tienes el CER, KEY y contraseña en algún repositorio.

1) Obtienes el arreglo de bytes de tu CER. Esto puede ser desde un repositorio o archivo físico
2) Conviertes el CER a una cadena en codificación base 64

1
2
3
4
5
6
7
8
public static string ObtenCertificado(string emisorRfc)
{
    using (var unidadTrabajo1 = new UnidadTrabajo())
    {
        var sello = unidadTrabajo1.Sello.Buscar(r => r.RFC == emisorRfc).FirstOrDefault();
        return Convert.ToBase64String(sello.Certificado);
    }
}

3) Obtienes el KEY de la misma forma que obtuviste el CER en base64
1
2
3
4
5
6
7
8
public static string ObtenKey(string emisorRfc)
{
    using (var unidadTrabajo1 = new UnidadTrabajo())
    {
        var sello = unidadTrabajo1.Sello.Buscar(r => r.RFC == emisorRfc).FirstOrDefault();
        return Convert.ToBase64String(sello.Llave);
    }
}

4) Una vez con el CER, KEY y tu contraseña, puedes llamar la función que comenté:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public static byte[] CerKey2Pfx(string cerText, string keyText, string keyPass)
{
    try
    {
        byte[] pfxBytes = null;
 
        var certificado = new System.Security.Cryptography.X509Certificates.X509Certificate2(Convert.FromBase64String(cerText));
        var pllavePrivada = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(keyPass.ToCharArray(), Convert.FromBase64String(keyText));
 
        var certificadoBC = new Org.BouncyCastle.X509.X509Certificate(Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(certificado).CertificateStructure);
        var acertificadoBC = new Org.BouncyCastle.Pkcs.X509CertificateEntry[1];
        acertificadoBC[0] = new Org.BouncyCastle.Pkcs.X509CertificateEntry(certificadoBC);
 
        var pfxStore = new Org.BouncyCastle.Pkcs.Pkcs12Store();
        pfxStore.SetKeyEntry("", new Org.BouncyCastle.Pkcs.AsymmetricKeyEntry(pllavePrivada), acertificadoBC);
        using (var pfxStream = new MemoryStream())
        {
            pfxStore.Save(pfxStream, keyPass.ToCharArray(), new Org.BouncyCastle.Security.SecureRandom());
            pfxBytes = pfxStream.ToArray();
        }
 
 
        var resultado = Org.BouncyCastle.Pkcs.Pkcs12Utilities.ConvertToDefiniteLength(pfxBytes, keyPass.ToCharArray());
 
        return resultado;
    }
    catch (Exception ex)
    {
        RegistraError(ex);
        return null;
    }
 
}

5) El PFX te lo regresa como un arreglo de bytes, sin embargo si necesitas mandarlo como cadena en base64 podrías hacer lo mismo que se hizo para el CER o KEY, "Convert.ToBase64String('El PFX')".

Si en determinado caso necesitan la biblioteca "BouncyCastle.Crypto.dll" se las puedo enviar vía correo electrónico, ya que en este momento como no soy miembro del foro no puedo adjuntar archivos.

Espero que sea de utilidad.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 19/09/2018 18:19:15
@Cocoliso eso fue sarcasmo?

Tu sabes que solo se le da clic al nickname y te manda a todos sus post.
--------------------------------

Que opinan de Chilkat?

para hacer el pfx


Es una libreria de paga cierto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 19/09/2018 20:51:03
@Violeta, de ninguna manera, me disculpo si dí a denotar eso.

En cuanto a lo de Chilkat ya está gratis esa dll, pero al menos a mí me pareció mas compacta la de BouncyCastle, pero si gustas aquí te dejo el enlace para ChilkatDotNet4.dll 32-bits NetFramework 4 https://drive.google.com/open?id=1PMhOoZ9zu-Vi5JxpL4XDiR4enNduTb2g.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Anonimo (6 intervenciones) el 19/09/2018 21:07:10
Hola

Alguien a revisado el limite de descarga que menciona el SAT.

Código: 5002
Mensaje: Se agotó las solicitudes de por vida.
Descripción: Para el caso de descarga de tipo CFDI, se tiene un límite máximo para solicitudes con los mismos parámetros (Fecha inicial, Fecha Final, RfcEmisor, RfcReceptor).

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 19/09/2018 21:25:38
el sat tiene varios limites de solo descargar un cierto número de cfdis al dia por metadata te permite descargar mas y esa parecer ser otra restriccion de que hay un limite en el número de solicitudes con los mismos parámetros creo yo para evitar saturar al servidor limita la descarga
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Courtois Garcia (15 intervenciones) el 19/09/2018 21:37:50
Hola Violeta,


Me atreví a modificar la aplicación de Alekz (espero no haber sido atrevido) e implementar cómo sería la autenticación por PFX y/o CER/KEY. ¿Cómo se los hago llegar?

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Anonimo (6 intervenciones) el 19/09/2018 21:38:57
Gracias @Apis

En sus pruebas han intentado descargar un paquete con parámetros que ya han utilizado, osea que después de las 72 hrs de vigencia del paquete intentar mandar las mismos parámetros para descargar el paquete otra vez.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 19/09/2018 21:59:53
@Courtois Garcia

Hay varias formas.

-Adjuntar archivos aqui
-Dropbox
-Drive

Etc

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 19/09/2018 22:16:11
@Courtois Garcia


Intente pasar el código a VB NET

Pero hast aqui llegue, creo que tendre que usar C#

1
2
3
4
5
6
7
8
9
10
11
12
Dim cer As String = Convert.ToBase64String(IO.File.ReadAllBytes(pathcer))
Dim key As String = Convert.ToBase64String(IO.File.ReadAllBytes(pathkey))
Dim keyBytes As Byte() = Convert.FromBase64String(pathkey)
 
Dim certificado = New System.Security.Cryptography.X509Certificates.X509Certificate2(cer)
Dim pllavePrivada = Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(keypass.ToCharArray(), keyBytes)
 
Dim certificadoBC = New Org.BouncyCastle.X509.X509Certificate(Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(certificado).CertificateStructure)
 
//ERROR
Dim acertificadoBC As Org.BouncyCastle.X509.X509Certificate = Org.BouncyCastle.Pkcs.X509CertificateEntry[1]
acertificadoBC(0) = New Org.BouncyCastle.Pkcs.X509CertificateEntry(certificadoBC)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 19/09/2018 22:35:21
@ Courtois García

Disculpa mi ignorancia pero cual fue tu modificación al proyecto?

Aqui?

1
2
3
4
5
6
7
8
9
10
11
string path, password;
if (args.Length == 0)
{
    path = @"C:\FielHerculesPFX\CSI121206SP0.pfx";
    password = "23456789";
}
else
{
    path = args[0];
    password = args[1];
}

Yo pense que te referias a crear el archivo PFX a partir de un cer+key+passkey

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Courtois Garcia (15 intervenciones) el 19/09/2018 22:40:56
Hola,

Antes que nada espero no haber sobrepasado los límites al modificar el proyecto. La modificación no es muy grande, se agregó a la interface la posibilidad de operar usando el PFX (que ya tenías) más la posibilidad de usar el CER, KEY y contraseña. Así mismo modifiqué las clases agregando un campo denominado "_pfxBytes" el cual tiene el PFX cuando se genera a través del método "CerKey2Pfx" de la clase BouncyCastle para no estar regenerando el PFX en cada petición.

Cabe mencionar que el proyecto que modifiqué es el publicado por @Alekz. Si consideran conveniente también lo puedo poner en el proyecto de Halcón Divino.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 20/09/2018 01:00:08
¿@Violeta dices que ya pasaste la mayor parte del proyecto a VB.NET, podrías pasármelo, por favor?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 20/09/2018 04:25:01
@CocoLiso
Solo hacia pruebas con CerKey2Pfx pero no pude terminarla.

Es mejor trabajarla en C#

Pero el código que compartio @Courtois Garcia si funciona.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Jesús Valera Durán (3 intervenciones) el 20/09/2018 16:01:31
En mi caso me funciono usar el OpenSsl, la instrucción es una sola línea

openssl pkcs12 -export -in archivo.cer -inkey archivo.key -out archivo.pfx


Espero que les sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 21/09/2018 06:33:46
Que versión de Visual Usan? he probado con varios de los archivos que han publicado y me manda este mismo error.

Ya lo probé con Visual Studio 2015 para Windows y con Visual Studio Community en Mac y en ambos tengo el mismo error.

y en otros me da este error:
Captura_de_pantalla_2018_09_20_a_la_s_23_24_01

Y de allí no pasa, a alguien le ha pasado?


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo
Val: 154
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Gerardo (72 intervenciones) el 21/09/2018 16:50:54
Que Horroooor, eso es posible????
o sea que pueden por decir "Banear" un RFC por exceso de solicitudes y ya nunca mas poder volver a descargar??????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 21/09/2018 21:47:26
Hola si te banearon?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 21/09/2018 23:47:12
@Anonimo


No me ha pasado el error 5008.

Alguien sabe la cantidad de descargas limite del mismo periodo?


Y alguien sabe cuanto tiempo máximo tarda un paquete en tener una respuesta del SAT?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 22/09/2018 00:22:19
Un paquete de 1500 algo asi se tardo como 4 horas aproximadamente, tengo paquetes de mas facturas y ya lleva mas de 12 horas sin estar disponibles, por eso el rango esta muy abierto de 48 a 72 horas segun, no se como le este yendo a los demas.

Saludos
Ivan Reyes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Violeta (71 intervenciones) el 23/09/2018 17:58:06
@Hola chicos


Han solucionado este error:?

El sesgo ser dentro de +-cinco minutos.

Como saber la hora del servidor del SAT antes de invocar a los web services?

Captura-de-pantalla-2018-09-23-a-las-10.53.18

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan Reyes (22 intervenciones) el 23/09/2018 20:54:55
Con sincronacion automatica de tu pc con windows?, o algun servidor NTP, por otro lado has hecho descargas de archivos muy grandes?, arriba de 50 Mb o de 40 mil a 70 mil xml de un jalon?

Alguien a probado una descarga realmente masiva de varios miles de documentos.


Saludos
Ivan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Courtois García (15 intervenciones) el 23/09/2018 21:18:31
8 mil documentos. Aproximadamente 4 horas para procesar la solicitud, una vez procesada bastante rápido para obtener.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 23/09/2018 23:30:04
Hola Courtois, no 7 o 8 mil si los baja y no hay problema, pero en paquetes mas grande los resultados son impredecibles, de hecho tengo un paquete de 81 mil facturas que no quiere bajar, se queda colgada la peticion y no deja hacer nada, es decir ya no descarga.

Me sale algo asi.


error_1

y en la descarga lo mismo, o descarga incompleto, es decir a veces descarga unos 25 mb, a veces 30 mb, y ya se pierde el paquete, como si no estuviera haciendo buffer, y como si falta algo para mantener la conexion abierta en lo que transmite, ya coloque un buffer de 100 mb, pero aun asi se desconecta, cuando esta copiando el stream al filestream. Hecho pruebas con 25 mil documentos, y 87 mil documentos, son los paquetes que se cuelgan.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 24/09/2018 04:18:50
Hola podrías incrementar el timeout del web service o ir poniendo de rangos mas cortos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 24/09/2018 06:12:02
si es lo que he estado haciendo, que timeout tienes tu?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Jesus Valera (3 intervenciones) el 24/09/2018 19:19:09
También revisa el tamaño de los archivos que puedes recibir

1
2
3
4
<binding closeTimeout="00:20:00"
  openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="00:30:00"
  allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="33554432"
  maxReceivedMessageSize="33554432" useDefaultWebProxy="true" />
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 24/09/2018 20:08:25
Tengo 1 Gb

maxBufferSize="1073741824" maxReceivedMessageSize="1073741824"

Pero se queda colgado el WS del SAT, por eso preguntaba que es lo maximo que han descargado.

Saludos
Ivan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 34
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por apis (17 intervenciones) el 24/09/2018 20:36:15
Puedes probar descargar el archivo en partes para no tener un timeout tan alto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por CocoLiso (44 intervenciones) el 24/09/2018 20:51:01
Acabo de hacer unas pruebas y posiblemente sean los servidores del SAT, ya que hasta la peticion de autenticacion esta tardando mas de lo que lo hacia anteriormente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 24/09/2018 21:36:54
Hola

El problema va mas alla tengo diferencias en los paquetes, es decir, en un paquete grande que solicite, segun el sat el paquete es de 30000 mil y tantos xml, y como ya lo habia descargado meses atras, realmente son 50 mil, y coincide con el tema de la metadata, es decir, los paquetes se estan armando mal, o algo esta pasando con el servicio. Era obvio que se iba a degradar, no se habia conectado nadie, despues que empezamos a conectarnos, se degrado, quien sabe que se rompio en el Azure, ojala se arregle pronto.

Saludos
Ivan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consumir Web Service Descarga Masiva

Publicado por Anonimo (6 intervenciones) el 24/09/2018 21:45:40
Hola Iva,
Tu consulta de comprobantes fueron Emitidos o Recibidos?,
o quizás te pudieron haber limitado la descarga que menciona el SAT.

Código: 5002
Mensaje: Se agotó las solicitudes de por vida.
Descripción: Para el caso de descarga de tipo CFDI, se tiene un límite máximo para solicitudes con los mismos parámetros (Fecha inicial, Fecha Final, RfcEmisor, RfcReceptor).

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Consumir Web Service Descarga Masiva

Publicado por Ivan (22 intervenciones) el 24/09/2018 22:42:30
Son emitidos, y la descarga era por primera vez, recuerda que son paquetes iguales, por rango de fechas, seria complicado que pudieran saber cuantas veces descargaste un xml en cualquier paquete. Aparte el limite Descripción: Para el caso de descarga de tipo CFDI, se tiene un límite máximo para solicitudes con los mismos parámetros (Fecha inicial, Fecha Final, RfcEmisor, RfcReceptor). es por paquete, segun esto una vez que la vigencia del paquete ya haya concluido se puede volver a descargar otro paquete.

Si es como dices, entonces primero tendria que ser algo que este funcionando de forma correcta y estable, pareciera que las pruebas de los 100,000 los hicieron en un ambiente local o algo así.

Cual es el limite de documentos que has descargado sin problemas?

Saludos
Ivan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar