Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 278 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Estou fazendo uma integração com clube de promoções Scanntec via API, o que ocorre é que quando tento enviar o arquivo, Json com as vendas para API ela retorna erro 400. Segundo a Scanntec, o arquivo Json não chega a ser postado. Estou usando componente IdHTTP para fazer o envio (POST), abaixo vou anexar meu código e o json para vocês analisarem.  Na documentação da Scanntech a API deveria retornar o código 200 para ser efetivado.
 

Erro_delphiCod.txt Arquivo_Venda_60.TXT

Att,

---------------------

Marcos Martins

  • 2 anos depois...
  • Membros Pro
Postado
Em 21/09/2021 at 16:21, marcoshmartins disse:

Estou fazendo uma integração com clube de promoções Scanntec via API, o que ocorre é que quando tento enviar o arquivo, Json com as vendas para API ela retorna erro 400. Segundo a Scanntec, o arquivo Json não chega a ser postado. Estou usando componente IdHTTP para fazer o envio (POST), abaixo vou anexar meu código e o json para vocês analisarem.  Na documentação da Scanntech a API deveria retornar o código 200 para ser efetivado.
 

Erro_delphiCod.txt 1.65 kB · 50 downloads Arquivo_Venda_60.TXT 785 B · 47 downloads

oi @marcoshmartins

Voce conseguiu concluir a integração.

Estou iniciando ela agora... tem alguns exemplos que possa me enviar?

Postado

Olá Doglas, 

Não conseguimos avançar não. O pessoal da Scanntec não soube me orientar a respeito do erro 400. Eles até me mandaram documentação e tals. Mais abortamos o projeto apos 6 meses de exaustiva tentativas, e nada.

Att,

---------------------

Marcos Martins

  • 2 meses depois ...
Postado

Boa tarde colegas,

Só para dar minha contribuição aqui. Eu estou homologando com a scanntech também, já tem uns dois anos que estou tentando concluir essa integração. kkkkkk. No meu caso  foi por falta de tempo em me dedicar. A integração com eles exige tempo para não deixar passar nenhum detalhe. E como eles tem vários tipos de promoções diferentes, se torna bem exaustivo implementar todas no software, principalemnte se ele não foi desenvolvido inicalmente para aceitar esses tipos de promoções. 

Passei por algumas situações de erro 400 estes últimos meses. Então vou dar uma olhada nos arquivos que você anexou para ver se consigo ajudar. Mesmo sabendo que não vai mais continuar com a integração, mas pode ser que ajude o nosso outro camarada, ou outra pessoa que esteja pensando em integrar com eles também. Se eu descobrir o motivo do seu erro 400 ou mesmo se eue não descobrir, vou postar aqui.

Postado

O link que você está usando parece estar correto.

No meu caso eu não usei IdHTTP para comunicar com a API deles, eu usei mesmo o TRestRequest. Não sei qual a versão do seu delphi, mas se tiver esse componente, recomendo que use ele, é bem mais fácil de lidar do que com o IdHTTP, na minha opinião.

Vou postar aqui o código que eu utilizei para enviar a venda:

procedure TdmVendaScanNtech.EnviarVendaNOTA(nota: string; out erro: string);
var VJSONObject: TJSONObject;
    vendaScanNtech :TRootDTO;
begin
  erro := '';
  rstRequest.Method := TRESTRequestMethod.rmPOST;
  rstRequest.Resource := '/movimientos';

  MontarHeaderRequest;

  vendaScanNtech := MontarJSONVendaNOTA(nota);
  try
    VJSONObject := TJson.ObjectToJsonObject(vendaScanNtech);
    SalvarArquivo(pathLog+'\vendaScanNtech_'+nota+'.json',VJSONObject.ToString);

    with rstRequest.Params.AddItem do
    begin
      ContentType := TRESTContentType.ctAPPLICATION_JSON;
      name        := 'param'; // param name
      Value       := vJSONObject.ToString; // seu json
      Kind        := pkREQUESTBODY;
    end;

    rstRequest.Execute;

    if (RESTResponse1.StatusCode = 200) or (RESTResponse1.StatusCode = 208) then //deu certo
    begin
    //por enquanto não precisa fazer nada.
    end
    else if (RESTResponse1.StatusCode >= 500) and (RESTResponse1.StatusCode <= 599) then
    begin
      erro := 'erro de comunicação com o servidor da ScanNTech:'+slinebreak+
          RESTResponse1.StatusCode.ToString+'-'+RESTResponse1.Content;
      Log(erro);
    end
    else
    begin
      erro := 'Erro na estrutura do envio do arquivo da ScanNTech. '+slinebreak+
               RESTResponse1.StatusCode.ToString+'-'+RESTResponse1.Content;
      Log(erro);
    end;
  finally
    vendaScanNtech.Free;
  end;

Uma coisa que observei também é que o json da venda tem que ser passado como body da requisição e não como parâmetro GET / POST. Eu não sei se o idhttp identifica os parametros do método post como body ou como POST. Mas pode ser este o problema também. Espero que isso ajude quem está tentando fazer essa integração e está tendo problemas com a comunicação.

  • Curtir 1
  • 1 mês depois ...
Postado
Em 05/02/2024 at 16:39, fredsmartfull disse:

Boa tarde, @Artur Alencar você tem o contato deles, preciso integrar mas nao consigo entrar em contato para pegar credenciais de homologação e etc.

 

Contato direto eu não tenho, eles me colocaram em um grupo no whatsapp. Só por lá que trocamos informações.

Postado
Em 13/02/2024 at 16:18, AlessandroOmmega disse:

Vocês entraram em contato pelo site deles mesmos para conseguir as documentações? 

No meu caso, eles entraram em contato com um cliente meu para perguntar se ele queria a integração. Ai o cliente passou o meu contato para este vendedor e ele começou a conversar comigo pelo telegram. Ai depois ele pediu o meu whats para passar no grupo deles que auxiliam na integração. Lá eles me mandaram os links com as documentações e ambiente de testes. Mas hoje fui tentar acessar alguns desses links e parece que não estão funcionando mais. Eles devem ter mudado a plataforma. Hoje estou na fase onde eles observam por uma ou duas semanas a integração pra ver se os dados estão chegando corretamente. Se tiver qualquer erro, eles pedem pra corrigir e atualizar e depois observam por mais duas semanas. Se ficar por duas semanas sem dar nenhum problema, ai ja vamos pra proxima fazer que é testar as promoções. Ai se der tudo certo, eles liberam pra gente poder oferecer pra qualquer cliente. Então por enquanto estou com esse sistema de integração rodando em apenas 5 clientes de teste.

  • Este tópico foi criado há 278 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.