Ir para conteúdo
  • Cadastre-se

dev botao

ACBrSedex não consultando frete.


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

Recommended Posts

  • Consultores

a API Publica está descontinuada pelos correios.

somente para assinantes/conveniados

image.png

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Consultores
15 minutos atrás, Montesoft disse:

Boa tarde Victor tudo bem ?

Sacanagem... deixaram apenas consulta de CEP e o resto pelo que vi vedaram ?

 

pelo o que vi, até consulta CEP está restrito ou será.

image.png

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Sr. Daniel

Boa Tarde!

Pelo que estou entendendo os senhores não tendo acesso à nova API dos Correios porque ela não é mais pública.

O que eu posso fazer e solicitar ao meu cliente, que é cadastrado nos correios , a documentação da Nova API.

Para isto eu preciso que o senhor me oriente sobre como solicitar isto para o Gerente de Correio.

Se eu apenas solicitar a API dos Correios já  vai vir toda informação que o Senhor necessita ?

Ou será necessário especificar melhor o pedido ?

Grato

Carlos
Andes Informática 
Franca-Sp
 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Companheiros

Bom Dia!

Alguém conseguiu encaminhar uma solução sobre este problema na API de Cálculo de Custos do Correio ?

Acredito que a primeira ação para resolver um problema deste gênero é saber o que mudou.
Obviamente se estava funcionando e parou de funcionar, alguma coisa foi mudada ou desativada.
Mudou o endereço onde está hospedada a API ?
Mudaram apenas parâmetros da API ?

O problema é que o Correio não colabora!

Não consegui encontrar esta API nova em nenhum lugar do Site dos Correios!

Questionei funcionários de uma das Agências dos Correios em minha cidade e ele falou que realmente alguns usuários reclamaram que os sistemas deles parou de funcionar.
Mas que eles da Agência não tem a mínima ideia do porque isto ocorreu!

Por outro lado abri um chamado no Serviço Fale Conosco dos Correios perguntando sobre a API , mas até hoje ninguém respondeu!

Conclusão : estou totalmente perdido sem saber o que fazer.

Algum dos companheiros conseguiu melhores informações sobre este assunto ?

Grato 

Link para o comentário
Compartilhar em outros sites

16 minutos atrás, AnDes Sistemas disse:

Companheiros

Bom Dia!

Alguém conseguiu encaminhar uma solução sobre este problema na API de Cálculo de Custos do Correio ?

Acredito que a primeira ação para resolver um problema deste gênero é saber o que mudou.
Obviamente se estava funcionando e parou de funcionar, alguma coisa foi mudada ou desativada.
...

O WebService antigo (ws.correios.com.br) foi encerrado em 17/09/2023, sendo agora apenas possível consultar sendo um usuário credenciado e com contrato ativo com o Correios, pra acessar a API basta autenticar no site https://cws.correios.com.br, usando o login do "Meu Correios" e navegar pela documentação na esquerda (a página só exibe as documentações das APIs que você possui acesso). O processo é extremamente burocrativo, onde trabalho decidimos usar Web Scraping para conseguir coletar as informações para que todos nossos clientes consigam usar.

Editado por Caio Cinel
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Sr. Caio

Bom Dia!

Acho que o problema está relacionado com o meu cadastro então.

Eu me cadastrei na última sexta-feira no Site dos Correios como Desenvolvedor.
Mas quando acesso somente aparecem para mim aqueles serviços que estão disponíveis 
para qualquer usuário.

Só não aparece para mim o principal que eu queria, que é a documentação da API.

Muito obrigado pela sua resposta.

Sabem os companheiros se o ajuste deste recurso de Cálculo de Custos dos Correios 
vai ser implementado no Componente AcbrSedex ?

Grato

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Sr. Daniel

Na verdade o que os Correios fizeram é deixar a informação desta API restrita apenas para quem é usuário dos serviços com Contrato.

Anteriormente só poderia utilizar este tipo de serviço também quem tivesse Contrato com os Correios.

A diferença atualmente é que eles restringiram demais o acesso à Documentação da API ( que antes era público ).

Uma questão : 
- Se eu copiar a Documentação da API e lhe passar acha que seria viável implementá-la no código-fonte do AcbrSedex ?
- Ou o senhor acha inviável por enquanto fazer esta customização ?

Grato por sua ajuda
 

Editado por AnDes Sistemas
Link para o comentário
Compartilhar em outros sites

5 horas atrás, AnDes Sistemas disse:

Sr. Caio

Bom Dia!

Acho que o problema está relacionado com o meu cadastro então.

Eu me cadastrei na última sexta-feira no Site dos Correios como Desenvolvedor.
Mas quando acesso somente aparecem para mim aqueles serviços que estão disponíveis 
para qualquer usuário.

Só não aparece para mim o principal que eu queria, que é a documentação da API.

Muito obrigado pela sua resposta.

Sabem os companheiros se o ajuste deste recurso de Cálculo de Custos dos Correios 
vai ser implementado no Componente AcbrSedex ?

Grato

Precisa ter contrato com os correios agora para poder ter acesso a essa nova api de consultar preços e prazos

Link para o comentário
Compartilhar em outros sites

Consegui desenvolver a parte de Token, Preço e rastreio usando o contrato de alguns clientes (fiz direto no meu sistema, não modifiquei o ACBR).

não sei como posso ajudar, se quiser posso fornecer o fonte.

Porém realmente foi uma sacanagem gigante dos correios, muitos clientes não tem contrato e estão sem conseguir usar, mesmo com minha aplicação atualizada.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Montesoft disse:

Consegui desenvolver a parte de Token, Preço e rastreio usando o contrato de alguns clientes (fiz direto no meu sistema, não modifiquei o ACBR).

não sei como posso ajudar, se quiser posso fornecer o fonte.

Porém realmente foi uma sacanagem gigante dos correios, muitos clientes não tem contrato e estão sem conseguir usar, mesmo com minha aplicação atualizada.

Então meu cliente entrou em contato com os correios, mais o dele não aparece a API, estou um outro

2 minutos atrás, Adhelmar Rondon disse:

Então meu cliente entrou em contato com os correios, mais o dele não aparece a API, estou um outro

Consegue disponibilizar os fontes, mais como você fez, porque esse meu cliente, no dele não aparece a API

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom Dia!

No meu caso , meus clientes já tinham contrato com os Correios!

Como seu desenvolvedor Windows e não domino muito esta parte de comunicação com APIs, solicitei ajuda de um Desenvolvedor Web e consegui pelo menos mapear o endereço da API , que é por exemplo:
  https://api.correios.com.br/preco/v1/nacional/04669?cepOrigem=14406004&cepDestino=14620000&nuContrato=9999999999&nuDR=74&psObjeto=0.8100&comprimento=33&largura=19&altura=11&diametro=0&dtEvento=02-10-2023

Note que na frente do endereço da API vão sendo concatenados os parâmetros , como era antes.
O que mudou é que agora é necessário enviar também o Token gerado pelos Correios na parte "Authorization: Bearer" do código HTTP.

Minha dificuldade está sendo como efetuar esta pesquisa dentro do Delphi , porque utilizamos ainda no nosso Erp o Delphi X2 ( que não tem os componentes Rest : RestClient, RestRequest , etc.. ).

Tentei utilizar o AcbrHTTP mas também não está dando certo.
Criei até um questionamento no forum do Acbr sobre a utilização do AcbrHTTP, que ainda não foi respondido.

Como o companheiro já conseguiu implementar uma solução dentro do Delphi para interagir diretamente com a Api dos Correios tem como compartilhar conosco ?

Grato pela ajuda!

Abaixo está a consulta que criei no Forum Acbr :

 

 

Link para o comentário
Compartilhar em outros sites

Gerar o Token via CartaoPostal:

       With FConhecimento do begin
                Try
                   RESTRequest1.Method   := TRESTRequestMethod.rmPOST;
                   RESTClient1.BaseURL   := 'https://api.correios.com.br/token/v1/autentica/cartaopostagem';

                   HTTPBasicAuthenticator1.Username := ParametrosCorreios.FieldByName('NomeUsuario').AsString;
                   HTTPBasicAuthenticator1.Password := ParametrosCorreios.FieldByName('CodigoAcesso').AsString;

                   JsonBody := TJSONObject.Create;
                   JsonBody.AddPair('numero', ParametrosCorreios.FieldByName('CartaoPostagem').Value);

                   RESTRequest1.Params.Items[0].Value:= JsonBody.ToString;
                   RESTRequest1.Params.AddItem.ContentType := ctAPPLICATION_JSON;
                   RESTRequest1.Execute;

                   data := RESTResponse1.JSONValue as TJSONObject;

                   Token        := data.Values['token'].Value;
                   DataEmissao  := data.Values['emissao'].Value;
                   DataValidade := data.Values['expiraEm'].Value;

                   // Converte a data de entrada para o formato correto
                   DataEmissao  := StringReplace(DataEmissao, '-', '/', [rfReplaceAll]);
                   DataValidade := StringReplace(DataValidade, '-', '/', [rfReplaceAll]);

                   // Remove o "T" e ajuste o formato da hora
                   DataEmissao  := StringReplace(DataEmissao, 'T', ' ', [rfReplaceAll]);
                   DataValidade := StringReplace(DataValidade, 'T', ' ', [rfReplaceAll]);

                   DataEmissao  := Copy(DataEmissao, 9,2) + '/' + Copy(DataEmissao, 6,2) + '/' + Copy(DataEmissao, 1,4) + ' ' + Copy(DataEmissao, 12,8);
                   DataValidade := Copy(DataValidade, 9,2) + '/' + Copy(DataValidade, 6,2) + '/' + Copy(DataValidade, 1,4) + ' ' + Copy(DataValidade, 12,8);

                Except on E : Exception do begin
                   ShowMessage('Erro: ' + E.Message);
                   Exit;
                end;
                end;
           end;

 

Para consultar o rastreamento:

function TFConhecimento.Rastro_Correios(Objeto : String): String;
var data, JsonBody: TJsonObject;
    cEventos: String;
    //ClientDataSet_Rastreio : TClientDataSet;
begin

     TokenCorreios('CartaoPostal');

     With FConhecimento do begin
          Try
             RESTRequest2.Params.Clear;
             RESTRequest2.Method       := TRESTRequestMethod.rmGET;
             RESTClient2.Authenticator := nil;

             RESTClient2.BaseURL       := 'https://api.correios.com.br/srorastro/v1/objetos/' + Objeto + '?resultado=T';

             RESTRequest2.AddParameter('Authorization', 'Bearer '+ParametrosCorreios.FieldByName('Token').AsString,
                                       TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);

             RESTRequest2.Execute;
             RESTResponseDataSetAdapter2.Active:= True;

             //Pega Campo de Eventos e transforma em DataSet
               cEventos:= FDRastreio.FieldByName('Eventos').AsString;
               Try
                  JsonToDataset(ClientDataSet_Rastreio, cEventos);
                  ClientDataSet_Rastreio.Open;
                  DataRastreio.DataSet:= ClientDataSet_Rastreio;
               Except on E : Exception Do begin
                  Result:= 'ERRO Validação ClientDataSet_Rastreio[Eventos](' + E.Message + ')';
                  ClientDataSet_Rastreio.Free;
                  Exit;
               end;
                 end;

          Except on E : Exception do begin
             ShowMessage('Erro: ' + E.Message);
             Result := 'erro: ' + E.Message;
             mRetorno.Text:= 'erro: ' + E.Message;
             Exit;
          end;
          end;
     end;

end;

esta bem cru ainda pessoal, mais está funcional!

Editado por Montesoft
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom Dia!

Eu tentei implementar de acordo com o sugerido, mas estou me deparando com o seguinte problema :

No componente RestClient eu configurei da seguinte forma :

image.png.665d183f204296bab057c61bd10d08cb.png

 

Porém, quando comando Execute no componente : RestRequest aparece a seguinte mensagem de erro :

image.png.a93de080a711cc67598e1903948d0435.png

Sabem me dizer o que pode estar ocasionando este erro ?

Grato

 

image.png

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.