Ir para conteúdo
  • Cadastre-se

programadorbq

Membros
  • Total de ítens

    15
  • Registro em

  • Última visita

Posts postados por programadorbq

  1. Bom dia, 

    alterei o código para esse

    dmML.ResetRESTComponentsToDefaults;
    
    dmML.RESTClientML.ContentType := 'application/xml';
    dmML.RESTClientML.BaseURL := 'https://api.mercadolibre.com/';
    dmML.RESTRequestML.Resource := 'shipments/' + strShippingID + '/invoice_data?access_token=' + dmML.OAuth2AuthenticatorML.AccessToken + '&siteId=MLB';
    dmML.RESTRequestML.Method := TRESTRequestMethod.rmPOST;
    dmML.RESTRequestML.Params.Clear;
    dmML.RestRequestML.AddBody(MemoXML.Text, ctAPPLICATION_XML);
    dmML.RestRequestML.Execute;
    
    MessageDlg(dmML.RESTResponseML.Content, mtInformation, [mbOK], 0);

    e funcionou.

     

    Espero que ajude!
     

    • Curtir 1
  2. Boa tarde,

    estou realizando a integração com a Api do Mercado Livre e não consigo realizar a carga do XML, sempre me retorna o erro: {"statusCode":400,"code":"bad_request","message":"Filename cannot be empty","requestId":"b70110a2-ed52-4d41-9125-e08d43c0a0fb"}

    "Filename cannot be empty" - Gostaria de saber aonde informar o "Filename", segue meu código.

     

    try
      dmML.ResetRESTComponentsToDefaults;
      //
      streamArquivo := TMemoryStream.Create;
      streamArquivo.LoadFromFile(strArquivoXML);
      streamArquivo.Position := 0;
      //
      dmML.RESTClientML.ContentType := 'multipart/form-data';
      dmML.RESTClientML.BaseURL := 'https://api.mercadolibre.com/';
      dmML.RESTRequestML.Resource := 'packs/' + strPackID + '/fiscal_documents';
      dmML.RESTRequestML.Method := TRESTRequestMethod.rmPOST;
      dmML.RESTRequestML.Params.Clear;
      dmML.RESTRequestML.Params.AddItem;
      dmML.RESTRequestML.Params.Items[0].name := 'fiscal_document';
      dmML.RESTRequestML.Params.Items[0].Value := strArquivoXML;
      dmML.RESTRequestML.Params.Items[0].ContentType := ctMULTIPART_FORM_DATA;
      dmML.RESTRequestML.Params.Items[0].Kind := pkFILE;
      dmML.RestRequestML.AddBody(streamArquivo, ctMULTIPART_FORM_DATA);
      dmML.RestRequestML.Execute;
      //
      Memo1.Text := dmML.RESTResponseML.Content.Trim;
    except
      on E: Exception do
      begin
        MessageDlg(E.Message, mtError, [mbOK], 0);
      end;
    end; 

    Desde já agradeço.

  3. Consegui fazer o sistema de recuperação de xml funcionar.

    Utilizei o código gerado pelo botão "Preparar documento para impressão".

    Com esta opção é gerado a nota fiscal eletrônica com os campos em formato texto.

    Modifiquei o evento WebBrowser1DocumentComplete para:

    if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=' then

    begin

    for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do

    begin

    Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;

    if (Source = 'http://www.nfe.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image') then

    begin

    dest := ExtractFilePath(ParamStr(0)) + 'captcha.gif';

    DownloadFile(Source, dest);

    end;

    end;

    Image1.Picture.LoadFromFile(dest);

    btnPegarHTML.Enabled := True;

    end

    else if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/visualizacaoNFe/completa/Default.aspx' then

    begin

    WebBrowser1.Navigate('https://www.nfe.fazenda.gov.br/PORTAL/visualizacaoNFe/completa/impressao.aspx');

    end

    else if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consultaCompleta.aspx?tipoConteudo=XbSeqxE8pl8=' then

    begin

    Memo2.Lines.Clear;

    //

    WebBrowser1.Navigate('http://www.nfe.fazenda.gov.br/portal/consultaImpressao.aspx?tipoConsulta=completa');

    end

    else if WebBrowser1.LocationURL = 'http://www.nfe.fazenda.gov.br/portal/consultaImpressao.aspx?tipoConsulta=completa' then

    begin

    textoNFe := WebBrowser1.Document as IHTMLDocument2;

    repeat

    Application.ProcessMessages;

    until Assigned(textoNFe.body);

    Memo2.Lines.Text := StripHTML(textoNFe.body.innerHTML);

    Memo2.Lines.Text := StringReplace(Memo2.Lines.Text,' ','',[rfReplaceAll, rfIgnoreCase]);

    i := 0;

    while i < memo2.Lines.Count-1 do

    begin

    if trim(Memo2.Lines) = '' then

    begin

    Memo2.Lines.Delete(i);

    i := i - 1;

    end;

    if pos('function',Memo2.lines)>0 then

    begin

    Memo2.Lines.Delete(i);

    i := i - 1;

    end;

    if pos('document',Memo2.lines)>0 then

    begin

    Memo2.Lines.Delete(i);

    i := i - 1;

    end;

    if pos('{',Memo2.lines)>0 then

    begin

    Memo2.Lines.Delete(i);

    i := i - 1;

    end;

    if pos('}',Memo2.lines)>0 then

    begin

    Memo2.Lines.Delete(i);

    i := i - 1;

    end;

    i := i + 1;

    end;

    Image1.Picture := nil;

    btnGerarXML.Enabled := True;

    GeraXml;

    end

    else if WebBrowser1.LocationURL = 'https://www.nfe.fazenda.gov.br/portal/inexistente_completa.aspx' then

    begin

    MessageDlg('NF-e INEXISTENTE na base nacional, favor consultar esta NF-e no site da SEFAZ de origem.',mtError,[mbok],0);

    Image1.Picture := nil;

    btnGerarXML.Enabled := True;

    btnNovaConsulta.Enabled := True;

    end

    else

    begin

    MessageDlg('Erro carregando URL: '+WebBrowser1.LocationURL,mtError,[mbok],0);

    Image1.Picture := nil;

    btnGerarXML.Enabled := True;

    btnNovaConsulta.Enabled := True;

    end;

    //////////////////////////////

    Depois é preciso alterar o código para buscar os campos corretos do emitente.

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.