Usar componente HTTPRio para AFIP

Iniciado por giulichajari, Abril 17, 2020, 05:27:31 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Soy de Argentina y no logro obtener el CAE de la factura, es decir no la puedo generar. Pero nommetira ningun error:

Código: php
procedure TComprobante.envio();
var
RIOFactura:THTTPRIO;
CUITEmisor:string;
      hoy:TDate;
request:FEAuthRequest;
archivoini:TIniFile;
cae:FECAERequest;
content:FECAEResponse;
FeDetResp:FECAEDetResponse;
cabecera:FECAECabRequest;
detalle:FECAEDetRequest;
movimiento:ArrayOfFECAEDetRequest;
error:ArrayOfErr;
RioComp:THTTPRIO;
responseUltCte:FERecuperaLastCbteResponse;
resp:ArrayOfFECAEDetRequest;
begin

     hoy:=StrToDate(FormatDateTime('yy/mm/dd',now));
    archivoini:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'caja.ini');
    CUITEmisor:= archivoini.ReadString('AFIP','CUIT','');
    //creamos objeto request
   request:=FEAuthRequest.Create;
   request.Token:=self.token;
   request.sign:=self.sign;
   request.Cuit:= StrToInt64(CUITEmisor);

   //obtenemos ultimo comprobante asociado.
    RioComp:=THTTPRIO.Create(nil);
  with RIOComp do
    begin
      WSDLLocation:='https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL';
      Port:='ServiceSoap';
      Service:='Service';

    end;
    //objeto de respuesta
    responseUltCte:=FERecuperaLastCbteResponse.Create;
    //invocamos el metodo
   responseUltCte:=(RioComp as serviceSoap).FECompUltimoAutorizado(request,1,011);
    error:=responseUltCte.Errors;

   if error<>nil then
       begin
         ShowMessage(error[0].Msg);
       end;
   //creamos cabecera del comprobante
   cabecera:=FECAECabRequest.Create;
   cabecera.CantReg:=DataModule1.cdsticket.RecordCount;
   cabecera.PtoVta:=1;
   cabecera.CbteTipo:=011;
   //creamos el detalle
   detalle:=FECAEDetRequest.Create;
   detalle.Concepto:=1;
   detalle.DocTipo:=80;
   detalle.DocNro:=27204172418;
   detalle.CbteDesde:=responseUltCte.CbteNro + 1;

   detalle.CbteHasta:=responseUltCte.CbteNro + 1;
   detalle.CbteFch:=FormatDateTime('yyyymmdd',now);
   detalle.ImpTotal:=DataModule1.cdstickettotal.AsVariant;
 
   detalle.ImpTotConc:=0;
   detalle.ImpNeto:=DataModule1.cdstickettotal.AsVariant;
   detalle.ImpOpEx:=0;
   detalle.ImpTrib:=0;
   detalle.ImpIVA:=0;
   detalle.FchVtoPago:=DateToStr(hoy);
   detalle.MonId:='PES';
   detalle.MonCotiz:=0;
   //movieminto
  SetLength(movimiento,1);
   movimiento[0]:=detalle;
   //creamos el objeto request
   cae:=FECAERequest.Create;

   //asignamos la cabecera
   cae.FeCabReq:=cabecera;
   cae.FeDetReq:=movimiento;
   content:=FECAEResponse.Create;
   //creamos objeto rio
  RIOFactura:=THTTPRIO.Create(nil);
  with RIOFactura do
    begin
      WSDLLocation:='https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL';
      Port:='ServiceSoap';
      Service:='Service';

    end;
    //invocamos el metodo
   content:=(RIOFactura as serviceSoap).FECAESolicitar(request,cae);

      if content.Errors<>nil then
       begin
          ShowMessage(content.Errors[0].Msg);
       end
       else
       begin
         ShowMessage(content.FeDetResp[0].CAE);
       end;





end;


Alguien sabe que puede ser?