User Tag List

Resultados 1 al 2 de 2

Tema: Oferta Laboral: Consumir un WS

  1. #1

    Fecha de ingreso
    Jul 2014
    Edad
    37
    Mensajes
    27

    Oferta Laboral: Consumir un WS

    Buenas y santas, tengo una pequeña tarea para desarrollar, busco costos por inbox, al que le interese hacer unos trumps extras bienvenido sea.
    Dejo la info.
    Estoy resolviendo una conexión a FEPLINK para un local de Punta Carrtas.
    Ellos no tienen casi documentación solo el Web Service, ya tengo la clave el usuario y el certificado para conectarme.
    La solución está en VS2015 y tengo acceso a los datos de Facturación solo me falta envíarlos al WS.
    Busco precio y tiempos de desarrollo.

    Parámetros del web service

    Mensaje (registros tipo MT_MOV o MT_MOV_EX)
    Usuarioisponible
    Claveisponible
    FirmaDigital isponible
    Respuesta
    Retorno (registro tipo MT_MOV_RESP)

    Invocación

    Se disponibiliza la siguiente dirección para la invocación:

    La idea del firmado es que se enviará un parámetro adicional pudiendo obtener estos valores realizando un WSDL sobre la siguiente dirección:

    https://www4.puntacarretas.com.uy:44...adas.aspx?wsdl

    Para verificar la autenticidad de la información recibida, se utilizará una firma digital que será enviada como parámetro adicional. Esto permitirá asegurar la identidad del servidor que envía la información.
    Para generar dicha firma se deberá:
    1) Generar un hash (algoritmo SHA-1) concatenando todos los parámetros que se envíen en el parámetro Mensaje (registros tipo MT_MOV o MT_MOV_EX).
    2) Firmar el hash obtenido en el paso anterior, utilizando el algoritmo RSA y una clave privada generada por quien envía la información; el resultado de la misma convertido a formato Base64.
    Quién envía la información deberá entregar la clave pública (RSA 2048bits) a quien recibe la misma para que éste pueda realizar la verificación de la firma al momento de recibir una solicitud.
    Se detalla en apartado “Generación de Certificado” como poder armar los archivos de certificado tanto privado como público.
    La información del registro es igual a lo que estás haciendo hasta ahora.



    Parámetros del web service

    Mensaje (registros tipo MT_MOV o MT_MOV_EX)
    Usuario
    Clave
    FirmaDigital
    Respuesta
    Retorno (registro tipo MT_MOV_RESP)

    El usuario y la clave se coordinarán con la Administración del Shopping



    Formato de datos a enviar

    Los mensajes a enviar, son los mismos que se enviaban en la versión anterior del FEPLINK, con exactamente el mismo formato; se describe a continuación.


    Solicitud a la Administración de Punta Carretas Shopping de INTERVENCION de Movimientos de Ventas

    Aquí se distinguen dos tipos distintos de Movimientos de Ventas por parte de los locales del Shopping, éstos son MT_MOV y MT_MOV_EX. Estos están pensados para diferenciar locales los cuales disponen de diferentes rubros por articulos que venden. El registro correcto que se aplica a cada local debe ser consultado a la ADMINISTRACION DE PUNTA CARRETAS SHOPPING

    Movimiento tipo MT_MOV

    Este servicio sirve para informar de las ventas efectuadas por un local hacia la Administración del Shopping Punta Carretas Shopping. El registro posee el siguiente formato.

    MT_MOV

    char msg_type [ 1]// valor=2
    char nro_local [ 4]// Nro. De local
    char nro_caja [ 4]// Caja dentro del local
    char fecha [ 8]// YYYYMMDD emitido
    char hora [ 6]// HHMMSS emitido
    char fecha_trans [ 8]// Fecha de Transferencia
    char hora_trans [ 6]// Hora de Transferencia
    char serie_comp [ 2]// Serie del comprobante; cada numeración debe tener una serie independiente.
    char nro_comp [ 8]// Nro. De comprobante (Factura, nota en el local)
    char cr_db [ 1]// 'C'=Credito, 'D'=Debito; 'C' es venta
    char moneda [ 1]// 'P'=Pesos, 'D'=Dolar
    char impuestos [13]// 11 enteros, 2 decimales sin punto decimal
    char tot_doc [13]// Total del documento sin impuestos
    char cant_cuot [ 2]// Cantidad de cuotas para el caso de créditos de la casa.
    char intervencion [12]// space(12)
    char nro_transacc [ 8]// Numerador -> ** ver aclaración de Secuencia
    char cliente [20]// Cédula en formato n,nnn,nnn-n y recostada a la izquierda (Ver aclaración de cédula)
    char literal [20]// Literal (Ver aclaración del literal)
    char importe1 [13]// 11 enteros, 2 decimales (IVA incl) sin punto decimal
    char Medio_Pago1 [ 2]// *ver tabla de Medios de Pago
    char importe2 [13]// 11 enteros, 2 decimales (IVA incl) sin punto decimal
    char Medio_Pago2 [ 2]// *ver tabla de Medios de Pago
    char importe3 [13]// 11 enteros, 2 decimales (IVA incl) sin punto decimal
    char Medio_Pago3 [ 2]// *ver tabla de Medios de Pago
    char importe4 [13]// 11 enteros, 2 decimales (IVA incl) sin punto decimal
    char Medio_Pago4 [ 2]// *ver tabla de Medios de Pago
    char importe5 [13]// 11 enteros, 2 decimales (IVA incl) sin punto decimal
    char Medio_Pago5 [ 2]// *ver tabla de Medios de Pago
    char importe6 [13]// 11 enteros, 2 decimales (IVA incl) sin punto decimal
    char Medio_Pago6 [ 2]// *ver tabla de Medios de Pago
    Código:
    //Se obtiene el certificado y la key privada del certificado con algoritmo RSA            
                X509Store my = new X509Store(StoreName.My, StoreLocation.LocalMachine);
                my.Open(OpenFlags.ReadOnly);
                RSACryptoServiceProvider csp = null; RSACryptoServiceProvider algPrivateKey = null;
                foreach (X509Certificate2 cert in my.Certificates)
                {
                    if (cert.Subject.ToLower().Contains("cn=www.puntacarretas.com.uy"))
                    {
                        // Get its associated CSP and private key
                        algPrivateKey = (RSACryptoServiceProvider)cert.PrivateKey;
                        break;
                    }
                }
                
                //Mensaje a enviar
                string strMsg = msg;
    
    
                //se crea una instancia de algoritmo SHA1 
                SHA1Managed sha1Manag = new SHA1Managed();
    
    
                //Se genera un Hash del Mensaje utilizando el algoritmo SHA1
                byte[] HashValue = sha1Manag.ComputeHash(Encoding.ASCII.GetBytes(strMsg));
    
    
                //Se firma el hash generado con el certificado y se convierte a string base64
                dynamic strSignedData = Convert.ToBase64String(algPrivateKey.SignHash(HashValue, CryptoConfig.MapNameToOID("SHA1")));
    
    
                //Mensaje firmado (strSignedData)
                return strSignedData;
    Dejo mi correo me@andrescampodonico.com y mi tel 095-911-269 aceta waza

  2. #2
    conseguiste quien te haga esto al final?

Información de tema

Usuarios viendo este tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •