Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2011
raulb raulb is offline
Registrado
 
Registrado: feb 2005
Posts: 8
Poder: 0
raulb Va por buen camino
Web Service con error al conectarme

Estoy desarrollando un sistema para facturas electrónicas en argentina. Bajo de la página del afip los WSDL y desde el webservices importer de delphi XE, genero la unidad pascal wssa.pas, luego la comienzo a utilizar.

El proceso de autenticación es generar un ticket XML, firmarlo y enviar el XML firmado, para ello que hago.

owssa -> Objeto HTTPRIO
trans -> Variable THTTPReqResp
kin -> Variable widestring
kout -> Variable widestring
Código Delphi [-]
  trans := THTTPReqResp.create(Nil);
  owsaa.HTTPWebNode := trans;
  owsaa.URL := 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms';
  owsaa.WSDLLocation := 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms?WSDL';
  owsaa.Service := 'LoginCMSService';
  owsaa.Port := 'LoginCMS';
La única función del wssa es ->
Código Delphi [-]
kout := (OWSAA as TLoginCMS).loginCms(kin);
Donde kin esta cargada con el contenido del XML firmado.

Cuando lo ejecuto me da el siguiente error ->
unable to retrieve the url endpoint for service/port 'LoginCMSService'/'LoginCMS' from WSDL 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms?WSDL'

He verificado la extructura del XML para confirmar que este correcta (la original) porque a la firmada le agrega en la cabecera y al pie todo lo que tiene que ver con los certificados, entre medio queda el XML original sin cambios.

La parte que me queda y saber si hay alguna propiedad del objeto HTTPRIO que se deba setear además de las que te mencione anterioremente. En el objeto.

Última edición por ecfisa fecha: 22-06-2015 a las 21:43:08. Razón: Etiquetas [delphi]
Responder Con Cita
  #2  
Antiguo 03-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Poder: 0
cybsistemas Va por buen camino
entiedo que si ponés wsdllocation no tenés que poner url y viceversa.
A propósito como hacés para firmar el xml
__________________
Carlos
Responder Con Cita
  #3  
Antiguo 05-04-2011
raulb raulb is offline
Registrado
 
Registrado: feb 2005
Posts: 8
Poder: 0
raulb Va por buen camino
Carlos, disculpas por la demora, pero recien entro al foro, si, logre hacerlo andar, el error era que estaba mal firmado el cms (mensaje). Para firmarlo utilizo el openssl-win32, como detalle para poder visualizar los errores te recomiendo bajar el soupui, luego de instalarlo y probarlo pude ver los errores en el cms.

Para firmar el ticket
openssl-win32 smime -sign -in ticket_sinfirmar.xml -out ticket_firmado.xml -inkey clave_privada -signer certificado_tramitado_en_afip -outform PEM -nodetach

la solución que encontre fue que el proceso arme un batch con esta linea de comando y luego la ejecuto.
Saludos.
Responder Con Cita
  #4  
Antiguo 06-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Poder: 0
cybsistemas Va por buen camino
Gracias, lo hice igual.
Yo tengo un problema ahora al solicitar CAE
Declaro una variable FECAERequest
Código Delphi [-]
Var
  Kin : FECAERequest;
La creo
Código Delphi [-]
 
Kin := FECAERequest.Create;
Y cuando le quiero asignar un valor
Código Delphi [-]
  
kin.FeCabReq.CantReg := 1;
me sale un error de Violación de acceso como si no la hubiera creado.
__________________
Carlos

Última edición por ecfisa fecha: 22-06-2015 a las 21:44:15. Razón: Etiquetas [delphi]
Responder Con Cita
  #5  
Antiguo 07-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Poder: 0
cybsistemas Va por buen camino
Ya lo arreglé
__________________
Carlos
Responder Con Cita
  #6  
Antiguo 07-04-2011
raulb raulb is offline
Registrado
 
Registrado: feb 2005
Posts: 8
Poder: 0
raulb Va por buen camino
Re-pregunto

Carlos, si ya superaste el paso de inicializar
Código Delphi [-]
 
var
      kcfac     : Ferequest;
 
      kcfac  := Ferequest.Create;
      kcfac.fecr := FecabeceraRequest.create;
Asignas el contenido de fecr, pero cuando inicializas fedr, se me queman los papeles.
Código Delphi [-]
      kcfac.fedr[0]  := FedetalleRequest.create;    // (Aca da error la ejecucion)
si le antepongo Setlength(kcfac.fedr,1) dimensionando el array que voy a crear, me da error el compilador diciendo que el objeto no puede utilizarce.

Como lo resolviste?

Última edición por ecfisa fecha: 22-06-2015 a las 21:46:01. Razón: Etiquetas [delphi]
Responder Con Cita
  #7  
Antiguo 08-04-2011
raulb raulb is offline
Registrado
 
Registrado: feb 2005
Posts: 8
Poder: 0
raulb Va por buen camino
Otra pregunta

Carlos :
Me doy cuenta que estas usando otra wsfe.wdsl porque los procedimientos tienen otro nombre, me imagino que debe ser la version que entra en vigencia el 01/07/2011, de donde bajaste el wdsl (me podes pasar el link) porque evidentemente estoy probando con la versión vieja.
Gracias
Responder Con Cita
  #8  
Antiguo 10-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Poder: 0
cybsistemas Va por buen camino
En afip.gob.ar/fe/ click en herramientas de asistencia
RG 2485 Diseño de registro XML V 1.1
RG 2485 Manual V1.1
Te bajás esos 2 arhivos.
Te mando el procedure completo. Fijate que Kin tenés que crearla pero Kout se crea sola. A los array de entrada tenés que asignarle espacio a los de salida se asigna solo
Código Delphi [-]
 Function TFormFac.SolicitarCAE : Boolean;
 Var
 I : Integer;
 Kin : FECAERequest;
 CAECabReq : FECAECabRequest;
 ACAEDetReq : ArrayOfFECAEDetRequest;
 CAEDetReq : FECAEDetRequest;
 ADetIva : ArrayOfAlicIva;
 DetIva : AlicIva;
 KOut : FECAEResponse;
 CAECabResp : FECAECabResponse;
 ACAEDetResp : ArrayOfFECAEDetResponse;
 CAEDetResp : FECAEDetResponse;
 AObserv : ArrayOfObs;
 AError : ArrayOfErr;
      Begin
      {
      1: Factura A
      2: Nota de Débito A
      3: Nota de Crédito A
      6: Factura B
      7: Nota de Débito B
      8: Nota de Crédito B
      }
      SetLength(ACAEDetReq,1);
      SetLength(ADetIva,1);
      Kin := FECAERequest.Create;
      CAECabReq := FECAECabRequest.Create;
      CAEDetReq := FECAEDetRequest.Create;
      DetIva := AlicIva.Create;
      CAECabReq.CantReg := 1;
      CAECabReq.CbteTipo := TipDoc;
      CAECabReq.PtoVta := PuntodeVenta;
      CAEDetReq.Concepto := 1;
      CAEDetReq.DocTipo  := 80;
      CAEDetReq.DocNro := DmMain.CliCuit.AsLargeInt;
      CAEDetReq.CbteDesde := numfac;
      CAEDetReq.CbteHasta := numfac;
      CAEDetReq.CbteFch := FormatDateTime('YYYYMMDD',EdFecha.Date);
      CAEDetReq.ImpTotConc := 0;
      CAEDetReq.ImpOpEx := 0;
      CAEDetReq.ImpTrib := 0;
      If LookMoneda.KeyValue = 1 then
           Begin
           CAEDetReq.ImpTotal := StrToFloat(Format('%12.2f',[TotalFinal]));
           CAEDetReq.ImpNeto := StrToFloat(Format('%12.2f',[TotalNeto]));
           CAEDetReq.ImpIVA := StrToFloat(Format('%12.2f',[IvaTotal]));
           End
 
      Else
           Begin
           CAEDetReq.ImpTotal := StrToFloat(Format('%12.2f',[TotalFinal * ValDolar]));
           CAEDetReq.ImpNeto := StrToFloat(Format('%12.2f',[TotalNeto * ValDolar]));
           CAEDetReq.ImpIVA := StrToFloat(Format('%12.2f',[IvaTotal * ValDolar]));
           End;
 
      CAEDetReq.MonId := 'PES';
      CAEDetReq.MonCotiz := 1;
      DetIva.Id := 5;
      DetIva.BaseImp := CAEDetReq.ImpNeto;
      DetIva.Importe := CAEDetReq.ImpIVA;
      ADetIva[0] := DetIva;
      CAEDetReq.Iva := ADetIva;
      DmMain.TWsaa.Close;
      ACAEDetReq[0] := CAEDetReq;
      Kin.FeCabReq := CAECabReq;
      Kin.FeDetReq := ACAEDetReq;
      //
      Kout := (HWSFE as ServiceSoap).FECAESolicitar(KinType,Kin);
      CAECabResp := KOut.FeCabResp;
      ACAEDetResp := KOut.FeDetResp;
      CAEDetResp := ACAEDetResp[0];
      AError := KOut.Errors;
      For i := 0 to Length(AError) - 1 do
         ShowMessage ('Error' + IntToStr(AError[i].Code) +') ' + AError[i].Msg);
 
      AObserv := CAEDetResp.Observaciones;
      For i := 0 to Length(AObserv) - 1 do
         Alert ('Obs: ' + AObserv[i].Msg);
 
      If CAECabResp.Resultado = 'R' then  //A=APROBADO, R=RECHAZADO, P=PARCIAL
         Result := False
      Else
           Begin
           LCAE := CAEDetResp.CAE;
           LvtoCae := VtoCaeToDate(CAEDetResp.CAEFchVto);
           Result := True;
           End;
 
      Kin.Free;
      KOut.Free;
      End;
__________________
Carlos

Última edición por ecfisa fecha: 22-06-2015 a las 21:41:10. Razón: Etiquetas [delphi]
Responder Con Cita
  #9  
Antiguo 10-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Poder: 0
cybsistemas Va por buen camino
Código Delphi [-]
KinType : FEAuthRequest;
Está declarado en todo el Form por eso no aparece ahí
Código Delphi [-]
      DmMain.TWsaa.Open;
      KinType.token := DmMain.TWsaaToken.Value;
      KinType.sign := DmMain.TWsaaSign.Value;
      KinType.Cuit := DmMain.TWsaaCuit.Value;
      DmMain.TWsaa.Close;
Ojo que la versión que vos usas deja de funcionar en junio y la 1.1 ya está funcionando, así que usá esa.
__________________
Carlos

Última edición por ecfisa fecha: 22-06-2015 a las 21:41:52. Razón: Etiquetas [delphi]
Responder Con Cita
  #10  
Antiguo 10-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Poder: 0
cybsistemas Va por buen camino
Otra cuestión

Ahora estoy viendo si puedo prescindir de openssl.
Para cifrar en base 64 está el componente TIdEncoderMIME, ahora faltaria firmar el XML para convertirlo en CMS. Tenés alguna idea de como hacerlo sin usar openssl.
__________________
Carlos
Responder Con Cita
  #11  
Antiguo 16-01-2013
fcios fcios is offline
Miembro
 
Registrado: jul 2003
Posts: 108
Poder: 21
fcios Va por buen camino
Hola simple pregunta, estás seguro que estos objetos se liberan correctamente con Kin.Free;
KOut.Free; ?

al cerrar la aplicación el eureka me dice que no están liberados

Gracias de antemano
Fabián
Responder Con Cita
  #12  
Antiguo 12-06-2015
Ramirogd Ramirogd is offline
Registrado
NULL
 
Registrado: mar 2012
Posts: 3
Poder: 0
Ramirogd Va por buen camino
Login en webservices de afip

Hola Raul,
Vi tu post sobre los webservices de afip y tengo el mismo problema.
Me cuesta conectarme al webservice de afip con el loginCMS.
Me dice que el CMS no es válido una y otra vez.
Podrias decirme los pasos que haces para poder conectarte? nisiquiera puedo conectarme a los webservices de homologacion.
Si me explicas un poco como es el proceso te lo agradecería mucho!

saludos y gracias de antemano,
Ramiro
Responder Con Cita
  #13  
Antiguo 12-06-2015
Ramirogd Ramirogd is offline
Registrado
NULL
 
Registrado: mar 2012
Posts: 3
Poder: 0
Ramirogd Va por buen camino
Hola podrias postear el tema del login?
me esta resultando dificil poder generar el token
Muchas Gracias!
Responder Con Cita
  #14  
Antiguo 12-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Ramirogd.

Lamentablemente veo que el usuario raulb no frecuenta estos foros desde el 03/11/2011, infiero que difícilmente obtengas respuestas de él...

Encontré estos dos temas relacionados en nuestros foros:Y fijate si alguno de estos enlaces externos te resulta útil:Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al conectarme desde un cliente andresenlared MS SQL Server 11 08-03-2008 03:24:40
Error al conectarme al BDE weke Conexión con bases de datos 0 29-03-2007 13:23:28
Error de conexion desde web service piccolo2101 SQL 0 25-01-2006 11:11:51
Otro error para conectarme como cliente, sigo son conectarme :( Lore Castillo Oracle 1 21-06-2005 02:16:14
Error al tratar de conectarme al servidor ElCherchu Firebird e Interbase 3 18-11-2004 14:56:12


La franja horaria es GMT +2. Ahora son las 07:36:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi