
d2mpavan
Membros-
Total de ítens
111 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que d2mpavan postou
-
Boa Noite Pessoal! Em minhas últimas postagens eu estava com dificuldades para integrar com uma api e enviar arquivos JSon. Graças à ajuda de nosso amigo "DATILAS" (Douglas Átilas), consegui implementar com sucesso a ferramenta de integração. Porém, praticamente de 98 a 99% das ordens enviadas (arquivos JSon) tem seu envio sem nenhum problema, sendo recebido integralmente pelo web service da api. O restante que minha ferramenta não consegue enviar é que eu não estou conseguindo resolver a questão, porque se eu copio uma dessas ordens que apresentou problema e tento enviar pelo "boomerang" ou pela "Restlet Client" do Google", a mesma é enviado normalmente. Alguém poderia me auxiliar nessa questão, por gentileza? Segue abaixo uma das ordens que apresentam problema em minha ferramenta: [{"Driver":{"PhoneCountry":"+55","PhoneNumber":"19 994559352"},"Customer":{"DocumentType":"CNPJ","DocumentNumber":"11229082000167"},"OrderType":1,"OrderID":"229551","OrderNumber":"229551","Sequence":"3","OrderDescription":"NF-e","OrderDescriptionDocuments":"NF-e","SourceAddress":{"Address":"RUA KINITI MORI, 110","Address2":"COMENDADOR MARIO DEDINI","ZipCode":"13413069","City":"PIRACICABA","State":"SP","Country":"BRASIL","Name":"PIRACICABA CARNES E DERIVADOS EIRELI","Responsibility":"REGINALDO","PhoneCountry":"+55","PhoneNumber":"(19)3917-0260"},"DestinationAddress":{"Address":"AV. RIO DAS PEDRAS, 192","Address2":"PIRACICAMIRIM","ZipCode":"13420520","City":"PIRACICABA","State":"SP","Country":"BRASIL","Name":"BAR PANTERA","Responsibility":"DIJALMA","PhoneCountry":"+55","PhoneNumber":"19 3426 2942"},"Documents":[{"DocumentID":"229551","DocumentNumber":"229551","Volumes":[{"VolumeID":"1","Count":1,"BarCode":"0","Read":1}]}],"Observation":"RAZAO SOCIAL: DJALMA PERES FARIAS ME ","DepartureDate":"2019-10-08T00:00:00"}] Para enviar essa ordem, ela é gerada em um TMemo e depois enviada pelo código abaixo: Link do Manual da API: https://api.tudoentregue.com.br/Documentacao/ Segue rotina para envio... function TFExportaEntrega.EnviarJSon(caminho: String; ArqJSon: TMemo): Boolean; Var code: Integer; sResponse, url: String; JsontoSend, AResponseContent: TStringStream; iStatusCode: Integer; http: TIdHTTP; Handler: TIdSSLIOHandlerSocketOpenSSL; Begin JsontoSend := TStringStream.Create(ArqJSon.Text); AResponseContent := TStringStream.Create(''); http := TIdHTTP.Create(Nil); Handler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); Try http.Request.CharSet := 'utf-8'; http.Request.ContentType := 'application/json'; http.Request.CustomHeaders.AddValue('AppKey', '58fb05c3-4e8b-4929-b7df-95bd261035c9'); http.Request.CustomHeaders.AddValue('RequesterKey', '629eda6f-9df5-40e7-a94e-4c54cec83a15'); http.IOHandler := Handler; http.Response.ContentType := 'application/json'; http.Response.CharSet := 'utf-8'; url := 'http://api.tudoentregue.com.br/v1' + caminho; Try http.Post(url, JsontoSend, AResponseContent); Except On E:Exception Do Begin Memo_Resp.Lines.Add('Response Content : '); AResponseContent.Position := 0; Memo_Resp.Lines.LoadFromStream(AResponseContent); Memo_Resp.Lines.Add('Error on Response Code: ' + InttoStr(http.ResponseCode)); Memo_Resp.Lines.Add('Error on Response Text: ' + http.ResponseText); Memo_Resp.Lines.Add('Error on Request: ' + sLineBreak + E.Message); EnviarJSon := false; exit; End; End; EnviarJSon := True; Finally JsontoSend.Free; AResponseContent.Free; http.Free; Handler.Free; End; end; Se alguém puder me ajudar ficarei muito grato pois não sei mais o que fazer. Att. Daniel
-
Boa Tarde Pessoal! Em minha ultima postagem o Datilas me ajudou demais (Muito Obrigado mesmo)! Consegui enviar os motoristas conforme a orientação dele e está funcionando perfeitamente. Porém, agora preciso enviar as ordens, e deveriam seguir as mesmas regras mudando apenas o caminho (orders). Mas não está enviando e me retorna erro 400 - Bad Request. Segue abaixo o código, caso alguém possa me ajudar. procedure TForm1.Button1Click(Sender: TObject); Var code: Integer; sResponse: String; Json: String; JsontoSend, AResponseContent: TStringStream; iStatusCode: Integer; http: TIdHTTP; Handler: TIdSSLIOHandlerSocketOpenSSL; Begin Json := '{"Driver": {"PhoneCountry": "+55","PhoneNumber": "19999690130"},"Customer": {"DocumentType": "CNPJ","DocumentNumber": "11229082000167"},"OrderType": 1,"OrderID": "123456","OrderNumber": "123456","OrderDescription": "NF-e",'; Json := Json + '"OrderDescriptionDocuments": "NF-e","SourceAddress": {"Address": "Rua Rahal, 71","Address2": "Jardim Santa Mena","ZipCode": "07097020","City": "Guarulhos","State": "Sao Paulo.","Country": "Brasil","Name": "Active Corp"'; Json := Json + ',"Responsibility": "Everton Implantacão","PhoneCountry": "+55", "PhoneNumber": "11988999199"},"DestinationAddress": {"Address": "Rua Sales, 812","Address2": "Cabucu","ZipCode": "07144260","City": "Guarulhos","State": "Sao Paulo","Country": "Brasil"'; Json := Json + ',"Name": "Everton Destinatario","Responsibility": "Everton","PhoneCountry": "+55","PhoneNumber": "1199994-9999"},"Documents": [{"DocumentID": "ID999999","DocumentNumber": "999999999","Volumes": [{"VolumeID": "ID999999","Count": 5,'; Json := Json + '"BarCode": "99999999999999999999","Read": 5}]}],"Observation": "Observação da Ordem para liberação."}'; JsonToSend := TStringStream.Create(Json); AResponseContent := TStringStream.Create(''); http := TIdHTTP.Create(Nil); Handler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); // Memo1.Lines.Clear; Try http.Request.CharSet := 'utf-8'; http.Request.ContentType := 'application/json'; http.Request.CustomHeaders.AddValue('AppKey', '58fb05c3-4e8b-4929-b7df-95bd261035c9'); http.Request.CustomHeaders.AddValue('RequesterKey', '629eda6f-9df5-40e7-a94e-4c54cec83a15'); http.IOHandler := Handler; http.Response.ContentType := 'applicattion/json'; http.Response.CharSet := 'utf-8'; Try http.Post('https://api.tudoentregue.com.br/v1/orders', JsontoSend, AResponseContent); Except On E: Exception Do Begin Memo1.Lines.Clear; Memo1.Lines.Add('Error on Response Code: ' + InttoStr(http.ResponseCode)); Memo1.Lines.Add('Error on Response Text: ' + http.ResponseText); Memo1.Lines.Add('Error on Request: ' + sLineBreak + e.Message); exit; End; End; Memo1.Lines.Clear; Memo1.Lines.Add('Response Content: ' + AResponseContent.DataString); Memo1.Lines.Add('Response Code: ' + InttoStr(http.ResponseCode)); Memo1.Lines.Add('Response Text: ' + http.ResponseText); Finally JsontoSend.Free; AResponseContent.Free; http.Free; Handler.Free; End; end; O arquivo JSon está correto porque foi enviado como exemplo pela empresa do software (ActiveCorp). Se alguém puder me ajudar, ficarei muito grato. Daniel
-
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Show!!! Funcionou perfeitamente! Mais uma vez muito obrigado!! Um Grande Abraço! -
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Boa Tarde Datilas! Deu certo! Consegui enviar. Só que conversei com o suporte da Empresa e, para adicionar um motorista é em outro local... customers/addDriver. Ficou assim essa rotina do motorista e fechou comunicação. Só uma dúvida: Porque quando eu envio na primeira vez funciona certinho e da segunda vez em diante dá erro? Veja como ficou o código abaixo que coloquei num botão e teste pra ver se pode me ajudar, por favor... procedure TForm1.Button1Click(Sender: TObject); var code : Integer; sResponse : String; Json : String; JsontoSend, AResponseContent : TStringStream; iStatusCode : Integer; begin Json := '{"Customer": { "DocumentType" : "CNPJ", "DocumentNumber" : "11229082000167" }, "Driver": { "PhoneCountry": "+55", "PhoneNumber": "19999690130", "Name": "Daniel Marcelo"} }'; JsonToSend := TStringStream.Create(Json); AResponseContent := TStringStream.Create(''); try IdHTTP1.Request.Clear; IdHTTP1.Request.CharSet := 'utf-8'; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.CustomHeaders.AddValue('AppKey','58fb05c3-4e8b-4929-b7df-95bd261035c9'); IdHTTP1.Request.CustomHeaders.AddValue('RequesterKey','629eda6f-9df5-40e7-a94e-4c54cec83a15'); IdHTTP1.Response.ContentType := 'applicattion/json'; IdHTTP1.Response.CharSet := 'utf-8'; try IdHTTP1.Post('https://api.tudoentregue.com.br/v1/customers/AddDriver',JsontoSend, AResponseContent); except on E:EIdHTTPProtocolException do begin Memo1.Lines.Clear; Memo1.Lines.Add('Error on Request: ' + #13+#10 + e.Message); exit; end; end; Memo1.Lines.Clear; Memo1.Lines.Add('Response Content: '+AResponseContent.DataString); Memo1.Lines.Add('Response Code: ' + InttoStr(IdHTTP1.ResponseCode)); Memo1.Lines.Add('Response Text: ' + IdHTTP1.ResponseText); finally JsontoSend.Free(); AResponseContent.Free(); end; end; Não sei como lhe agradecer em tudo que tem me ajudado! Muito Obrigado mesmo e que Deus te abençoe! Grande Abraço! Daniel -
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Pra mim, na primeira vez que rodo retorna vazio. Na segunda vez em diante retorna o mesmo erro que aparece pra você. Por favor, dê uma olhada se pode me ajudar. O código abaixo está com o App e Requester Key... Não sei como fechar essa comunicação... lembrando que estou usando o componente IDHTTP. segue código... var code : Integer; sResponse : String; Json : String; JsontoSend, AResponseContent : TStringStream; iStatusCode : Integer; begin Json := '{"PhoneCountry": "+55", "PhoneNumber": "19999999999", "Name": "Daniel", "IMEI": "123", "DeviceKey": "123456", "DeviceId": "222555",'; Json := Json +'"DeviceType": "MarcaModelo", "OSName": "Android", "OSVersion": "7.0", "Email": "[email protected]", "ZipCode": "13425066", "City": "Piracicaba", "State": "Sao Paulo", "Enable": false}'; JsonToSend := TStringStream.Create(Json); AResponseContent := TStringStream.Create(''); try IdHTTP1.Request.Clear; IdHTTP1.Request.CharSet := 'UTF-8'; IdHTTP1.Request.Method := 'POST'; IdHTTP1.Request.Username := ''; IdHTTP1.Request.Password := ''; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.CustomHeaders.AddValue('AppKey','58fb05c3-4e8b-4929-b7df-95bd261035c9'); IdHTTP1.Request.CustomHeaders.AddValue('RequesterKey','629eda6f-9df5-40e7-a94e-4c54cec83a15'); IdHTTP1.Response.ContentType := 'applicattion/json'; IdHTTP1.Response.CharSet := 'UTF-8'; try sresponse := IdHTTP1.Post('https://api.tudoentregue.com.br/v1/drivers',JsontoSend); except on E:EIdHTTPProtocolException do begin Memo1.Lines.Clear; Memo1.Lines.Add('Error on Request: ' + #13+#10 + e.Message); exit; end; end; Memo1.Lines.Clear; Memo1.Lines.Add(sResponse); finally JsontoSend.Free(); end; end; -
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Certo, Mas como faço para usar como você fez no seu exemplo inicial com o THTTPClient? (apresenta undeclared identifier) Ou com o TIDHTTP que estou usando terei o mesmo efeito? É que não estou tendo retorno usando o TIDHTTP... Obrigado! -
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Então... Inseri as informações na uses, porém quando vou compilar, não encontra o arquivo, por exemplo: "file not found: NetConsts.dcu" Obrigado! -
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Não encontrou o arquivo... -
Integrar com API - ActiveCorp
d2mpavan replied to d2mpavan's tópico in Dúvidas não relacionadas ao ACBr
Bom dia Datilas! Muito obrigado por me ajudar! Porém, quando inseri as keys e tentei transmitir um arquivo obtive uma resposta vazia e os dados não foram inseridos. Isso quando apenas inseri as chaves utilizando o componente idhttp que eu estava utilizando. Testei também conforme seu código só que apresentou erro "undeclared identifier: 'THTTPClient' Como devo declarar na uses para corrigir o problema? (uso Delphi Rad Studio XE). Desde já agradeço se puder me ajudar novamente. Grande abraço! Daniel -
Boa Tarde Pessoal! Se puderem me orientar, preciso consumir uma API (segue documentação... https://api.tudoentregue.com.br/Documentacao/index.html) Quanto à geração dos arquivo no formato Json, eu já consegui entender. Porém, já tentei de várias formas e não consigo fechar comunicação com web service para Post do arquivo. Vi na documentação que tem um "AppKey" e um "RequesterKey". As duas chaves eu possuo mas não tenho ideia de onde as defino. securityDefinitions": { "AppKey": { "type": "apiKey", "in": "header", "name": "AppKey", "description": "Identificador do software Homologado junto à ActiveCorp para integrar dados ao TudoEntregue." }, "RequesterKey": { "type": "apiKey", "in": "header", "name": "RequesterKey", "description": "Identificador único do Motorista/Cliente junto ao TudoEntregue." Estou utilizando IDHTTP, mas seria interessante que o envio fosse através de HTTPS. Vejam como estou fazendo: var code : Integer; sResponse : String; Json : String; JsontoSend : TStringStream; begin Json := '{"PhoneCountry": "+55", "PhoneNumber": "19999999999", "Name": "Daniel", "IMEI": "", "DeviceKey": "", "DeviceId": "",'; Json := Json +'"DeviceType": "MarcaModelo", "OSName": "Android", "OSVersion": "7.0", "Email": "[email protected]", "ZipCode": "13400000", "City": "Piracicaba", "State": "Sao Paulo", "Enable": false}'; JsonToSend := TStringStream.Create(utf8Encode(Json)); try IdHTTP1.Request.Clear; IdHTTP1.Request.CharSet := 'UTF-8'; IdHTTP1.Request.Method := 'POST'; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Response.ContentType := 'applicattion/json'; IdHTTP1.Response.CharSet := 'UTF-8'; try sResponse := IdHTTP1.Post('http://api.tudoentregue.com.br/v1/drivers',JsontoSend); except on E:EIdHTTPProtocolException do begin Memo1.Lines.Clear; Memo1.Lines.Add('Error on Request: ' + #13+#10 + e.Message); exit; end; end; Memo1.Lines.Clear; Memo1.Lines.Add(sResponse); finally JsontoSend.Free(); end; end; Alguém poderia me dar um exemplo de como enviar os arquivos se possivel em HTTPS? Desde já agradeço! Daniel
-
Boa Tarde José! Obrigado pelo Retorno! Resolvido conforme sua orientação. Muito Obrigado!
-
Boa Noite Juliana! Testei conforme me orientou, porém continua gerando o arquivo remessa da mesma forma. Segue novamente para análise arquivos Titulos.ini e o arquivo remessa. Apenas para informação, utilizo ACBRMonitorPlus versão 1.2.0.41; Desde já agradeço o empenho para me ajudar. Att. Daniel CB120702.REM Titulos.ini
-
Boa Noite Felipe! Muito obrigado pelo retorno! Desculpe responder somente agora. É que estou com outros bancos para homologar. Funcionou perfeitamente conforme sua orientação. Att. Daniel
-
Boa Tarde Juliana! Mesmo informando as propriedades que você citou, os Registros do segmento P das posições 58 e 59 não se alteraram. Para melhor avaliar, seguem anexo os arquivos Titulos.ini e o arquivo remessa gerado. Se puder me ajudar, ficarei muito grato. Att. Daniel CB120700.REM Titulos.ini
-
Boa Tarde Juliana! Mais uma vez obrigado pelo retorno! Vou ajustar o sistema para informar esses parâmetros. Att Daniel
-
Boa Tarde Juliana! Primeiramente obrigado pelo retorno! Quanto a impressão da carteira na linha digitável do boleto, funcionou corretamente conforme orientado! Porém, ainda referente ao Segmento P posições 58 e 59 citados acima, não consegui resolver. Também as informações retornadas pelo banco na análise do meu arquivo remessa não tem nada à ver com o que retornaram porque a posição 58 refere-se à Tipo de Cobrança (Nota 5 do Manual) e o campo 59 refere-se à Forma de Cadastramento (Nota 6 do Manual). Poderia me auxiliar nesse caso também pois não identifiquei o local para informar esses dados. Segue anexo manual do banco... Obrigado! Daniel H7815 Layout Cobrança CNAB 240 posições padrão Santander Multibanco Abril 2019 v 3.2.pdf
-
Boa Tarde Juliana! Primeiramente obrigado pelo retorno! Já, quanto a impressão da carteira na linha digitável do boleto, funcionou corretamente conforme orientado! Porém, ainda referente ao Segmento P posições 58 e 59 citados acima, não consegui resolver. Poderia me auxiliar nesse caso também? Obrigado! Daniel
-
Boa Tarde! Como devo proceder para informar o campo abaixo solicitado pela Caixa Econômica através do ACBRMonitorPlus? Segmento P Posição 225 a 227 – prazo de baixa/devolução, informar “030” dias. Desde já agradeço, Daniel
-
Bom Dia Senhores! Estou Homologando um cliente para o Banco Santander. Apenas para informação: - Utilizo ACBRMonitorPlus versão 1.2.0.41; - O banco Santander utiliza uma carteira para Impressão dos boletos (101) e uma carteira para informar no arquivo Remessa (5) as quais estão sendo informadas devidamente em cada momento; o Banco está requisitando a impressão da carteira "101" no boleto, conforme imagem anexa (boleto.png). Porém, como podem verificar, estou enviando a informação da Carteira 101. Como devo proceder para imprimir a carteira no campo que estão requisitando? Outra inconsistência: Posição 58 - 058 CÓDIGO DA CARTEIRA INCORRETO. DEVE SER: 5 Mesmo informando a Carteira "5", como solicitaram, está gerando com o código 1 nessa posição, conforme podem verificar pelos arquivos Titulos.ini e CB100700.rem. O que estou fazendo de errado nessa caso? Outra inconsistência: Posição 59 - 059 FORMA DE CADASTRAMENTO INCORRETA. DEVE SER: 1 Também não sei como solucionar esse caso... poderiam me ajudar. Desde já agradeço! Daniel CB100700.REM Titulos.ini
-
Chave RSA Privada NÃO pode ser lida no arquivo "swh.ini".
d2mpavan replied to d2mpavan's tópico in ACBrMonitor PLUS
Obrigado Felipe! Quero que desconsiderem meu post... E me desculpem! O boleto estava sendo gerado, porém era salvo em PDF, pois não havia definido uma impressora. Agradeço a compreensão. -
Chave RSA Privada NÃO pode ser lida no arquivo "swh.ini".
um tópico no fórum postou d2mpavan ACBrMonitor PLUS
Boa Tarde Senhores! Estou usando a versão 1.2.0.18 do ACBRMonitorPlus, a qual baixei recentemente e instalei na minha máquina de desenvolvimento. Porém, utilizo o ACBRMonitorPlus apenas para gerar boletos, pois ainda não integrei essa função ao meu sistema diretamente com o ACBR. Só que agora, com essa nova versão, quando tento gerar um boleto aparece a seguinte mensagem: ATENÇÃO: Chave RSA Privada NÃO pode ser lida no arquivo "swh.ini". Após a mensagem o boleto não é gerado. Na versão anterior (1.1.0.54) que eu utilizava e está em produção nos clientes isso não ocorria e o boleto é gerado normalmente. Também já excluí o arquivo. Porém ele foi recriado e o problema continua. Poderiam me ajudar a resolver essa questão? Abraços! Daniel -
Arquivo Remessa - Data Mora Juros - Banco do Brasil
d2mpavan replied to d2mpavan's tópico in ACBrMonitor PLUS
Boa Noite Juliana! Com relação à Data da Multa, que era mais importante nesse momento da homologação junto ao banco, funcionou perfeitamente. Mas e com relação à Razão Social, alguma ideia? Muito Obrigado mesmo pela ajuda!!! Att. Daniel -
Arquivo Remessa - Data Mora Juros - Banco do Brasil
um tópico no fórum postou d2mpavan ACBrMonitor PLUS
Boa Noite Senhores! Estou tentando integrar com o Banco do Brasil. Utilizo ACBRMonitorPLUS (Versão 1.1.0.54). Porém, constatei alguns problemas. No caso, o Cliente que estou tentando integrar possui "Ç" na razão social. Por algum motivo que desconheço, o arquivo gerado pelo ACBRMonitorPLUS quando gera o arquivo remessa desconsidera 1 (um) caracter da razão social do cliente, invalidando o registro "Header" do arquivo remessa. Para esse caso, já "solucionei" passando a razão do cliente sem o "Ç". Um outro erro que não consegui descobrir tem há ver com o registro "R" no campo de data da cobrança da multa (posições 067 a 074). Este campo está vindo com a informação "30121899". Verifiquei o arquivo "Titulos.ini" (em anexo) e o campo DataMoraJuros está sendo informado com a Data de Vencimento + 1 dia e mesmo assim não preenche o campo com a informação desejada. O que está faltando informar? Desde já agradeço. Daniel CB190602.REM Titulos.ini LOG.TXT ACBrMonitor.ini -
Também consegui! Criaram vergonha na cara e corrigiram o problema.
-
Ainda não consegui. Mesmo erro....