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 » Sab Dic 06, 2014 10:38 am

rodo, que certificado usaste para conectarte al servicio de envio?, te lo dieron especialmente para CONVOL 2.0 o usaste alguno que ya tenias en CONVOL 1.0? el usuario y contraseña que usaste es el mismo que se venia usando para CONVOL 1.0?

Gracias por tu tiempo...

omar_chavez
Mensajes: 1
Registrado: Dom Dic 07, 2014 10:14 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor omar_chavez » Dom Dic 07, 2014 10:37 pm

Tendrán el archivo de Referencia de PEMEX para analizarlo bien?

Estoy viendo en el Fiddler que me retorna un XML con 1 estructura Fault que no la veo contemplada en ninguna parte ... (Según mis pruebas)

<?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>
AAAAA</arg2>
<arg3>
40f3390881992f2e9db586316e15ce0b575b9e0806aa1c9bef636767be706536</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>

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 08, 2014 11:27 am

omar_chavez escribió:Tendrán el archivo de Referencia de PEMEX para analizarlo bien?


Muchas gracias por el interes Omar, te paso mi correo amd.guizmo@gmail.com, si me puedes pasar por favor el tuyo y me pongo en contacto.

Saludos... ;)

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

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor Jesus Castelo » Jue Dic 11, 2014 3:58 pm

Gracias a la ayuda de rodo, fortiz y Omar Chavez, encontramos la solucion.

Config final:

Código: Seleccionar todo


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="ServicioConsultaCONVOLPortBinding">
          <security mode="Transport" />
        </binding>
        <binding name="ServicioEnviaCONVOLPortBinding" messageEncoding="Mtom">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://www.convolmiscelaneapruebas.pemex.com:443/ServiciosCVWEB/ServicioConsultaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioConsultaCONVOLPortBinding"
          contract="PruebaServicioConsultaCONVOLDelegate"
          name="ServicioConsultaCONVOLPort" />
      <endpoint address="https://www.convolmiscelaneapruebas.pemex.com:443/ServiciosCVWEB/ServicioEnviaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioEnviaCONVOLPortBinding"
          contract="PruebaServicioEnviaCONVOL"
          name="ServicioEnviaCONVOLPort" />
      <endpoint address="https://www.convol.pemex.com:443/ServiciosCVWEB/ServicioConsultaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioConsultaCONVOLPortBinding"
          contract="ServicioConsultaCONVOLDelegate"
          name="ServicioConsultaCONVOLPort" />
      <endpoint address="https://www.convol.pemex.com:443/ServiciosCVWEB/ServicioEnviaCONVOLService"
          binding="basicHttpBinding" bindingConfiguration="ServicioEnviaCONVOLPortBinding"
          contract="ServicioEnviaCONVOL"
          name="ServicioEnviaCONVOLPort" />     
    </client>
  </system.serviceModel>
</configuration>


Uso del servicio:

Código: Seleccionar todo


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Permissions;
using System.Text;

namespace ArchivosPEMEX
{
    [System.Runtime.Serialization.DataContract()]
    public class Seguridad
    {
        [System.Runtime.Serialization.DataMember(Order = 0)]
        public string usuario;

        [System.Runtime.Serialization.DataMember(Order = 1)]
        public string password;

        [System.Runtime.Serialization.DataMember(Order = 2)]
        public string fechaSistema;
    }

    public class Pruebas
    {
        static ConsultaPEMEX.ServicioConsultaCONVOLDelegateClient RequestConsu = new ConsultaPEMEX.ServicioConsultaCONVOLDelegateClient();
        static EnviaPEMEX.ServicioEnviaCONVOLClient RequestEnvio = new EnviaPEMEX.ServicioEnviaCONVOLClient();
        static PruebaConsultaPEMEX.ServicioConsultaCONVOLDelegateClient RequestPruebaConsu = new PruebaConsultaPEMEX.ServicioConsultaCONVOLDelegateClient();
        static PruebaEnviaPEMEX.ServicioEnviaCONVOLClient RequestPruebaEnvio = new PruebaEnviaPEMEX.ServicioEnviaCONVOLClient();

        public static string getHashSha256(string text)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(text);
            SHA256Managed hashstring = new SHA256Managed();
            byte[] hash = hashstring.ComputeHash(bytes);
            string hashString = string.Empty;
            foreach (byte x in hash)
            {
                hashString += String.Format("{0:x2}", x);
            }
            return hashString;
        }

        public static byte[] ConsultarArchivo(string cNombreArchivo)
        {
            byte[] ArchivoRespuesta;

            ArchivoRespuesta = RequestConsu.consultaCONVOL(cNombreArchivo);

            return ArchivoRespuesta;
        }

        public static byte[] EnviarArchivo(byte[] ArchivoEnvio, string Checksum, string cUsuario, string cPassword, string cFecha, string cHora)
        {
            byte[] ArchivoRespuesta;

            string cPasswordSHA256 = getHashSha256(cUsuario + cPassword + DateTime.Now.ToString("dd/MM/yyyy"));

            using (System.ServiceModel.OperationContextScope scope = new System.ServiceModel.OperationContextScope(RequestEnvio.InnerChannel))
            {
                System.ServiceModel.Channels.MessageHeader header = System.ServiceModel.Channels.MessageHeader.CreateHeader(
                    "Seguridad",
                    "http://ws.convol/",
                    new Seguridad { usuario = cUsuario, password = cPasswordSHA256, fechaSistema = DateTime.Now.ToString("dd/MM/yyyy") },
                    false);

                System.ServiceModel.OperationContext.Current.OutgoingMessageHeaders.Add(header);

                ArchivoRespuesta = RequestEnvio.enviaCONVOL(cFecha, cHora, ArchivoEnvio, Checksum);
            }

            return ArchivoRespuesta;
        }

        public static byte[] PruebaConsultarArchivo(string cNombreArchivo)
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback =
                ((sender, certificate, chain, sslPolicyErrors) => true);

            byte[] ArchivoRespuesta;

            ArchivoRespuesta = RequestPruebaConsu.consultaCONVOL(cNombreArchivo);

            return ArchivoRespuesta;
        }

        public static byte[] PruebaEnviarArchivo(byte[] ArchivoEnvio, string Checksum, string cUsuario, string cPassword, string cFecha, string cHora)
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback =
                ((sender, certificate, chain, sslPolicyErrors) => true);

            byte[] ArchivoRespuesta;

            string cPasswordSHA256 = getHashSha256(cUsuario + cPassword + DateTime.Now.ToString("dd/MM/yyyy"));

            using (System.ServiceModel.OperationContextScope scope = new System.ServiceModel.OperationContextScope(RequestPruebaEnvio.InnerChannel))
            {
                System.ServiceModel.Channels.MessageHeader header = System.ServiceModel.Channels.MessageHeader.CreateHeader(
                    "Seguridad",
                    "http://ws.convol/",
                    new Seguridad { usuario = cUsuario, password = cPasswordSHA256, fechaSistema = DateTime.Now.ToString("dd/MM/yyyy") },
                    false);

                System.ServiceModel.OperationContext.Current.OutgoingMessageHeaders.Add(header);

                ArchivoRespuesta = RequestPruebaEnvio.enviaCONVOL(cFecha, cHora, ArchivoEnvio, Checksum);
            }

            return ArchivoRespuesta;
        }
    }
}


El usuario para el envio en produccion y en pruebas es el mismo (clave SIIC) pero la contraseña en pruebas es pemex99999.

Saludos...

yonitatemaco
Mensajes: 4
Registrado: Mar Dic 30, 2014 10:10 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor yonitatemaco » Mar Dic 30, 2014 10:34 pm

Que tal Ingenieros!

En el proceso de transmisión el Web Service de pruebas me manda este error:

<acceso clave='426' timestamp='30/12/2014 16:50:46' descripcion='Sellado de archivo no válido'></acceso>

He verificado el sello con el siguiente comando:

xsltproc cadenaoriginal_v1_1.xslt 0000000000E0000020141221.000000RFCI580401RFC.xml | openssl dgst -sha1 -sign RFCI580401RFC_S.key.pem | openssl enc -base64 -A

El sello me sale igual como cuando genero el xml, por esta razón pienso que el sello es valido, pero en el portal de pruebas me rechaza el archivo por que me dice lo contrario.

Alguna idea ?

Agradezco de antemano.

Saludos!

javiht
Mensajes: 4
Registrado: Mié Dic 31, 2014 9:11 am

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor javiht » Mié Dic 31, 2014 9:22 am

Hola yonitatemaco, tengo varios dias peleandome con ese mismo error de: <acceso clave='426' timestamp='30/12/2014 15:24:19' descripcion='Sellado de archivo no válido'>, si encuentras una solución, por favor avisame, yo hare lo mismo si la encuentro.
Saludos y un feliz 2015 para todos.

javiht
Mensajes: 4
Registrado: Mié Dic 31, 2014 9:11 am

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor javiht » Vie Ene 02, 2015 7:51 am

Hola nuevamente, quisiera saber si alguno de ustedes ya esta enviando exitosa mente archivos de control volumetrico al servidor de pruebas Pemex.
Agradecería muchismo me contactaran. javi466-vpn@yahoo.com.
Saludos y gracias.

yonitatemaco
Mensajes: 4
Registrado: Mar Dic 30, 2014 10:10 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor yonitatemaco » Vie Ene 02, 2015 12:19 pm

Hola que tal javiht, yo sigo donde mismo, no he podido avanzar, ya he probado de todo y nada sigo en el mismo error. si encuentro la solución te aviso.
Saludos y feliz año.

javiht
Mensajes: 4
Registrado: Mié Dic 31, 2014 9:11 am

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor javiht » Sab Ene 03, 2015 9:44 am

Hola yonitatemaco, me puedes escribir un correo para contactarte. javi466-vpn@yahoo.com.
Desde el dia 1º de enero ya no se recibo XML's del servicio web de pemex, tengo una excepción: Error creating a reader for the MTOM message. Y mi código es exactamente igual, que cuando recibía respuestas en xml.
¿A alguien le pasa lo mismo?
Saludos

rodo
Mensajes: 22
Registrado: Lun Jul 11, 2011 1:22 pm

Re: Enviar archivos de controles volumetricos a PEMEX

Mensajepor rodo » Mié Ene 07, 2015 9:25 pm

kscius escribió:A mi me responde

Código: Seleccionar todo

<faultstring>302|Usuario invalido, no se permite acceso</faultstring>
, y si estoy mandando correctamente todo...

Código: Seleccionar todo



<au:usuario>0000105847</au:usuario>
 <au:password>720826e2d9ed4a0230d3de0bc78d534feb2ca02a0c69c382f16b6dbf25e82ea7</au:password>
 <au:fechaSistema>07/01/2015</au:fechaSistema>


donde el sha es 0000105847pemex9999907/01/2015

en pemex dicen que donde dice <au:password>les llega lo de <au:usuario>


En la peticion SOAP como esta enviando el apartado del header del nodo seguridad?
Usando tus datos el portal si me los acepta.


Volver a “Otros”

¿Quién está conectado?

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