Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03

Enviar archivos de controles volumetricos a PEMEX

Todo lo que no cabe en los demas foros........
Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Jue Nov 27, 2014 10:09 am

Gracias por la ayuda rodo,

Creo que voy caminando poco a poquito, el error debe estar en algo del .config pero no logro dar con que, para hacer la consulta, hago lo siguiente (lenguage c#):

Código: Seleccionar todo

       
        ConsultaPEMEX.ServicioConsultaCONVOLDelegateClient RequestClient = new ConsultaPEMEX.ServicioConsultaCONVOLDelegateClient();
        byte[] Archivo;

        Archivo = RequestClient.consultaCONVOL(cNombreArchivo);


Pero me envia estos errores, siempre son los mismos:

Error al recibir la respuesta HTTP a https://www.convol.pemex.com/ServiciosC ... VOLService. Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP. También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio). Consulte los registros del servidor para obtener más información.

Se ha terminado la conexión: Error inesperado de recepción.

No se puede escribir datos de en la conexión de transporte: Se ha forzado la interrupción de una conexión existente por el host remoto.


Sigo leyendo en sangoogle, cualquier ayuda es bienvenida ;)

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Jue Nov 27, 2014 11:35 am

Por fin pude comunicarme con algo :roll:, deje mi archivo .config asi:

Código: Seleccionar todo


  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="ServicioEnviaCONVOLPortBinding" messageEncoding="Mtom">
          <security mode="Transport" />
        </binding>
        <binding name="ServicioConsultaCONVOLPortBinding" messageEncoding="Mtom">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://www.convolmiscelaneapruebas.pemex.com:443/ServiciosCVWEB/ServicioConsultaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioConsultaCONVOLPortBinding"
          contract="PruebaConsultaPEMEX.ServicioConsultaCONVOLDelegate"
          name="PruebaServicioConsultaCONVOLPort" />
      <endpoint address="https://www.convolmiscelaneapruebas.pemex.com:443/ServiciosCVWEB/ServicioEnviaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioEnviaCONVOLPortBinding"
          contract="PruebaPruebaEnviaPEMEX.ServicioEnviaCONVOL" name="ServicioEnviaCONVOLPort" />
      <endpoint address="https://www.convol.pemex.com:443/ServiciosCVWEB/ServicioConsultaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioConsultaCONVOLPortBinding"
          contract="ConsultaPEMEX.ServicioConsultaCONVOLDelegate" name="ServicioConsultaCONVOLPort" />
      <endpoint address="https://www.convol.pemex.com:443/ServiciosCVWEB/ServicioEnviaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioEnviaCONVOLPortBinding"
          contract="EnviaPEMEX.ServicioEnviaCONVOL" name="ServicioEnviaCONVOLPort" />
    </client>
  </system.serviceModel>


Implemente lo del Mtom, era lo que me faltaba, estaba muy facil, solo agregar la parte de messageEncoding="Mtom". Pero solo he logrado conectarme con el servicio de consulta en produccion, es decir https://www.convol.pemex.com/ServiciosCVWEB/ServicioConsultaCONVOLService/WEB-INF/wsdl/ServicioConsultaCONVOLService.wsdl, con el servicio de pruebas https://www.convolmiscelaneapruebas.pemex.com/ServiciosCVWEB/ServicioConsultaCONVOLService/WEB-INF/wsdl/ServicioConsultaCONVOLService.wsdl aun me da un error siempre que intento enviar la consulta, me dice:

No se pudo establecer una relación de confianza para el canal seguro SSL/TLS con la autoridad 'www.convolmiscelaneapruebas.pemex.com'.

Se ha terminado la conexión: No se puede establecer una relación de confianza para el canal seguro SSL/TLS.

El certificado remoto no es válido según el procedimiento de validación.


Siempre me pone lo mismo, otro pasito mas :lol:

fortiz
Mensajes: 221
Registrado: Vie Dic 10, 2010 8:11 am

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor fortiz » Jue Nov 27, 2014 12:36 pm

Mis $0.02

Veo que el servicio de prueba tiene un certiifiado 'de pruebas'

Captura de pantalla 2014-11-27 a las 13.30.34.png
Captura de pantalla 2014-11-27 a las 13.30.34.png (34.39 KiB) Visto 10152 veces


Cuando yo quiero hacer webservices en PHP a un sitio de pruebas tengo que agregar la opcion de ignorar

Captura de pantalla 2014-11-27 a las 13.33.41.png
Captura de pantalla 2014-11-27 a las 13.33.41.png (31.37 KiB) Visto 10152 veces


En Visual no se como se pueda hacer ...

Espero te sirva

http://stackoverflow.com/questions/8443618/disable-certificate-verification-in-php-soapclient

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Jue Nov 27, 2014 1:28 pm

Muchas gracias por la ayuda fortiz :D

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Jue Nov 27, 2014 4:54 pm

fortiz escribió:Mis $0.02

Veo que el servicio de prueba tiene un certiifiado 'de pruebas'

Captura de pantalla 2014-11-27 a las 13.30.34.png


Cuando yo quiero hacer webservices en PHP a un sitio de pruebas tengo que agregar la opcion de ignorar

Captura de pantalla 2014-11-27 a las 13.33.41.png


En Visual no se como se pueda hacer ...

Espero te sirva

http://stackoverflow.com/questions/8443618/disable-certificate-verification-in-php-soapclient


Con lo que me comentaste logre darme una idea de que buscar en google y encontre una manera de ignorar tambien los certificados cuando estoy conectandome a un ambiente de pruebas, antes de llamar ejecturar cualquier servicio del web service, pongo esta linea:

Código: Seleccionar todo


            System.Net.ServicePointManager.ServerCertificateValidationCallback =
                ((sender, certificate, chain, sslPolicyErrors) => true);


de esa manera confia en cualquier certificado y se logra la conexion "segura".

Ahora en lo que estoy es, intentando usar el servicio de envio, pero obtengo la excepcion "Los mensajes MTOM deben tener el tipo 'application/xop+xml'.", sigo leyendo 8-)

Gracias por la ayuda...

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Vie Nov 28, 2014 12:14 pm

Pues ahora estoy un poquito confundido, como no logro conectarme al servicio de envio, entonces quite lo del Mtom y deje mi .config asi:

Código: Seleccionar todo


  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="ServicioEnviaCONVOLPortBinding">
          <security mode="Transport" />
        </binding>
        <binding name="ServicioConsultaCONVOLPortBinding">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://www.convolmiscelaneapruebas.pemex.com:443/ServiciosCVWEB/ServicioConsultaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioConsultaCONVOLPortBinding"
          contract="PruebaConsultaPEMEX.ServicioConsultaCONVOLDelegate"
          name="ServicioConsultaCONVOLPort" />
      <endpoint address="https://www.convolmiscelaneapruebas.pemex.com:443/ServiciosCVWEB/ServicioEnviaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioEnviaCONVOLPortBinding"
          contract="PruebaEnviaPEMEX.ServicioEnviaCONVOL"
          name="ServicioEnviaCONVOLPort" />
      <endpoint address="https://www.convol.pemex.com:443/ServiciosCVWEB/ServicioConsultaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioConsultaCONVOLPortBinding"
          contract="ConsultaPEMEX.ServicioConsultaCONVOLDelegate"
          name="ServicioConsultaCONVOLPort" />
      <endpoint address="https://www.convol.pemex.com:443/ServiciosCVWEB/ServicioEnviaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioEnviaCONVOLPortBinding"
          contract="EnviaPEMEX.ServicioEnviaCONVOL"
          name="ServicioEnviaCONVOLPort" />
    </client>
  </system.serviceModel>


Hice una prueba de envio y nada, me dice que hay un error, el codigo que uso para el envio es:

Código: Seleccionar todo


            System.Net.ServicePointManager.ServerCertificateValidationCallback =
                ((sender, certificate, chain, sslPolicyErrors) => true);

            byte[] ArchivoRespuesta;

            ArchivoRespuesta = RequestEnvio.enviaCONVOL("27/11/2014", "12:49:35", ArchivoEnvio, Checksum);

            return ArchivoRespuesta;


el error me dice "Referencia a objeto no establecida como instancia de un objeto.", el objeto RequestEnvio no es null, ni tampoco ninguna de las variables que uso. El error se genera al enviar la peticion al web service, en la linea ArchivoRespuesta = RequestEnvio.enviaCONVOL("27/11/2014", "12:49:35", ArchivoEnvio, Checksum);

Entonces probe el servicio de consulta para ver si este me marcaba lo mismo sin el Mtom y sorpresa, me funciona (o eso es lo que yo creo), la respuesta al consultar es esta:

Código: Seleccionar todo


<?xml version='1.0' encoding='UTF-8' ?>
 <mensajesws>
<acceso clave='003' timestamp='28/11/2014 12:57:55' descripcion='Archivo no recibido'></acceso>
 </mensajesws>


Que segun yo, aqui quiere decir que al hacer uso del servicio de consulta, si logro conectarse al servicio web, el servicio web contesto, pero como el archivo que quiero consultar no existe, me regresa el error 'Archivo no recibido'.

tons como esta la cosa para implementar el Mtom en visual studio para usar un axis web service 2?
realmente me estoy conectando con el servicio de consulta?
mi problema al usar el servicio de envio sera lo de implementar Mtom?

Cualquier ayuda es bienvenida, gracias...

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Lun Dic 01, 2014 1:28 pm

Ninguna idea ??? :(

rodo esto es lo que me dice fiddler al usar el servicio de envio de prueba.

Lo que yo envio:

--uuid:1aacb6a0-876f-4c32-9563-3f68b9bff2f2+id=1
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="text/xml"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><enviaCONVOL xmlns="http://ws.convol/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><arg0 xmlns="">27/11/2014</arg0><arg1 xmlns="">12:49:35</arg1><arg2 xmlns="">AAAAAAAAAAA=</arg2><arg3 xmlns="">r1Vw9aGBC3r3jK9LxwpmDw31HkK6+R1N5bIyjeDoPfw=</arg3></enviaCONVOL></s:Body></s:Envelope>
--uuid:1aacb6a0-876f-4c32-9563-3f68b9bff2f2+id=1--


Lo que me envian:

--MIMEBoundary_67e6aebc674ac3ab1474860e7312234ab12e2d54c0b6b4f1
Content-Type: text/xml; charset=utf-8
Content-Transfer-Encoding: binary
Content-ID: <0.77e6aebc674ac3ab1474860e7312234ab12e2d54c0b6b4f1@apache.org>

<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><ns2:enviaCONVOL xmlns:ns2="http://ws.convol/"><arg0>27/11/2014</arg0><arg1>12:49:35</arg1><arg2>AAAAAAAAAAA=</arg2><arg3>r1Vw9aGBC3r3jK9LxwpmDw31HkK6+R1N5bIyjeDoPfw=</arg3></ns2:enviaCONVOL><s:Fault><faultcode>s:Server</faultcode><faultstring>300|No hay datos en header para seguridad</faultstring></s:Fault></s:Body></s:Envelope>
--MIMEBoundary_67e6aebc674ac3ab1474860e7312234ab12e2d54c0b6b4f1
Content-Type: application/xop+xml;charset=utf-8;type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <http://tempuri.org/0>

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><enviaCONVOL xmlns="http://ws.convol/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><arg0 xmlns="">27/11/2014</arg0><arg1 xmlns="">12:49:35</arg1><arg2 xmlns="">AAAAAAAAAAA=</arg2><arg3 xmlns="">r1Vw9aGBC3r3jK9LxwpmDw31HkK6+R1N5bIyjeDoPfw=</arg3></enviaCONVOL></s:Body></s:Envelope>
--MIMEBoundary_67e6aebc674ac3ab1474860e7312234ab12e2d54c0b6b4f1--



Veo que dice "No hay datos en header para seguridad", aunque sea de pruebas tu crees que necesite el usuario y password de produccion?

Gracias por su tiempo... :cry:

jggtz
Mensajes: 362
Registrado: Lun Oct 10, 2011 11:50 am

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor jggtz » Lun Dic 01, 2014 1:44 pm

En todos los web service que he consumido, tanto el wsdl de pruebas como el de produccion son absolutamente iguales en todo, certificados, contraseñas, formato, etc...
La diferencia es que en el de pruebas no continua el tramite subsecuente (es decir, no pasa a la siguiente etapa administrativa del receptor de los documentos)

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Lun Dic 01, 2014 3:57 pm

gracias jggtz, estoy en eso de armar el header, nunca habia hecho uno, espero que ese sea el problema.

Jesus Castelo
Mensajes: 384
Registrado: Lun Feb 14, 2011 6:37 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Vie Dic 05, 2014 10:21 am

Despues de mucho leer y de algunas pruebas deje mi Binding para el enviar asi:

Código: Seleccionar todo


      <wsHttpBinding>
        <binding name="ServicioEnviaCONVOLPortBinding" closeTimeout="00:10:00"
          openTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="true"
          maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
          messageEncoding="Mtom">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="Transport">
            <transport clientCredentialType="Basic" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </wsHttpBinding>


El mensaje que me regresa el service reference en .net es el mismo:

Error al crear un lector para el mensaje MTOM.

Los mensajes MTOM deben tener el tipo 'application/xop+xml'.


Esto es lo que me dice Fiddler con esa ultima configuracion, aqui si veo un cambio:

Lo que yo envio:

--uuid:08952dca-b6c3-463d-b9f2-071c0ca4df4d+id=1
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://ws.convol/ServicioEnviaCONVOL/enviaCONVOLRequest</a:Action><a:MessageID>urn:uuid:63903375-53fb-41a3-9fc8-ee5da6559b1a</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">https://www.convolmiscelaneapruebas.pemex.com/ServiciosCVWEB/ServicioEnviaCONVOLService</a:To></s:Header><s:Body><enviaCONVOL xmlns="http://ws.convol/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><arg0 xmlns="">27/11/2014</arg0><arg1 xmlns="">12:49:35</arg1><arg2 xmlns="">AAAAAAAAAAA=</arg2><arg3 xmlns="">r1Vw9aGBC3r3jK9LxwpmDw31HkK6+R1N5bIyjeDoPfw=</arg3></enviaCONVOL></s:Body></s:Envelope>
--uuid:08952dca-b6c3-463d-b9f2-071c0ca4df4d+id=1--

Lo que me envian:

--MIMEBoundary_a7e6aebc674ac3abf9ca694e7312234ae12e2d54c0b6b4f1
Content-Type: application/soap+xml; charset=utf-8
Content-Transfer-Encoding: binary
Content-ID: <0.b7e6aebc674ac3abf9ca694e7312234ae12e2d54c0b6b4f1@apache.org>

<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><a:Action s:mustUnderstand="1">http://ws.convol/ServicioEnviaCONVOL/enviaCONVOLRequest</a:Action><a:MessageID>urn:uuid:63903375-53fb-41a3-9fc8-ee5da6559b1a</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">https://www.convolmiscelaneapruebas.pemex.com/ServiciosCVWEB/ServicioEnviaCONVOLService</a:To><wsa:RelatesTo>urn:uuid:63903375-53fb-41a3-9fc8-ee5da6559b1a</wsa:RelatesTo></s:Header><s:Body><ns2:enviaCONVOL xmlns:ns2="http://ws.convol/"><arg0>27/11/2014</arg0><arg1>12:49:35</arg1><arg2>AAAAAAAAAAA=</arg2><arg3>r1Vw9aGBC3r3jK9LxwpmDw31HkK6+R1N5bIyjeDoPfw=</arg3></ns2:enviaCONVOL><s:Fault xmlns:env="http://www.w3.org/2003/05/soap-envelope"><axis2ns1:Code xmlns:axis2ns1="http://www.w3.org/2003/05/soap-envelope"><axis2ns1:Value>env:Receiver</axis2ns1:Value></axis2ns1:Code><axis2ns1:Reason xmlns:axis2ns1="http://www.w3.org/2003/05/soap-envelope"><s:Text xml:lang="en-US">302|Usuario invalido, no se permite acceso</s:Text></axis2ns1:Reason></s:Fault></s:Body></s:Envelope>
--MIMEBoundary_a7e6aebc674ac3abf9ca694e7312234ae12e2d54c0b6b4f1
Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"
Content-Transfer-Encoding: binary
Content-ID: <http://tempuri.org/0>

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://ws.convol/ServicioEnviaCONVOL/enviaCONVOLRequest</a:Action><a:MessageID>urn:uuid:63903375-53fb-41a3-9fc8-ee5da6559b1a</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">https://www.convolmiscelaneapruebas.pemex.com/ServiciosCVWEB/ServicioEnviaCONVOLService</a:To></s:Header><s:Body><enviaCONVOL xmlns="http://ws.convol/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><arg0 xmlns="">27/11/2014</arg0><arg1 xmlns="">12:49:35</arg1><arg2 xmlns="">AAAAAAAAAAA=</arg2><arg3 xmlns="">r1Vw9aGBC3r3jK9LxwpmDw31HkK6+R1N5bIyjeDoPfw=</arg3></enviaCONVOL></s:Body></s:Envelope>
--MIMEBoundary_a7e6aebc674ac3abf9ca694e7312234ae12e2d54c0b6b4f1--

Ahora el mensaje cambio a "302|Usuario invalido, no se permite acceso", por ahi le estoy buscando ahora, no se si sea realmente que estoy enviando mal el usuario y contraseña o si es mas bien que no estoy configurando bien el binding.

El usuario que uso es uno valido, actualmente lo uso en una estacion para enviar los archivos en texto plano como se hacia antes en convol 1.0, sera que tengo que tramitar un nuevo usuario para usar en convol 2.0?, los de PEMEX nomas no me pelan, seguire intentando jejeje


Volver a “Otros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados