Ir para conteúdo
  • Cadastre-se

johnbh3

Membros
  • Total de ítens

    703
  • Registro em

  • Última visita

Tudo que johnbh3 postou

  1. function Enviar(const pMetodo, pURL, pDadosEnvio: string; var pRetorno: TRetRequisicao): Boolean; var synHttp: THTTPSend; mstr: TMemoryStream; stmResp, stmDados: TStringStream; vs: RawByteString; tmp: string; LHeaders: TStringList; requestBody: TStringStream; begin synHttp := THTTPSend.Create; mstr := TMemoryStream.Create; LHeaders := TStringList.Create; LHeaders.Add('Content-Type: application/json'); LHeaders.Add('x-api-key: minhakey'); try vs := UTF8Encode(pDadosEnvio); //FH.StrParaStream(synHttp.Document, vs); ????? synHttp.MimeType := 'application/json'; //Tentei colocar no synHttp.Document mas nem sei se isto esta certo. requestBody := TStringStream.Create(vs); synHttp.Document.Position := 0 ; synHttp.Document.LoadFromStream(requestBody); for tmp in LHeaders do synHttp.Headers.Add(tmp); Result := synHttp.HTTPMethod(pMetodo, pURL); if Result then begin mstr.CopyFrom(synHttp.Document, 0); pRetorno.StatusCode := inttostr(synHttp.ResultCode); // pRetorno.Response := FH.AjustaChrEspecial(FH.MemoryStreamParaString(mstr), True); ??????????????? end else begin pRetorno.StatusCode := inttostr(synHttp.ResultCode); // pRetorno.Response := FH.SeStrVazia(synHttp.Sock.LastErrorDesc, synHttp.ResultString); ??????????????? end; finally synHttp.Free; mstr.Free; LHeaders.Free; end; end; Detalhe coloquei o type type TRetRequisicao = record StatusCode: String; Response: String; end; Retorna 500 de toda forma
  2. Outra que n entendi pDadosEnvio coomop parametro e dentro do escopo vs recebe ela pDadosEnvio mas vs e usado no envio onde?
  3. o que e FH.StrParaStream(synHttp.Document, vs); ?Eu tive que remover pq n da pra saber oque ali faz
  4. Com postman funciona e com a função da http 500.
  5. Mas como eu faria uma requiscao semelhante ao que fiz acima a uma API externa?
  6. Eh então, já e segunda API que tenho este tipo de problema. E não resolve atualizando DLL. Parece ser coisa de delphi mesmo; E pior que não sei se existe uma alternativa pra contornar. E no momento fora de cogitação de mudar o delphi
  7. function EnviarRequisicaoHTTP: string; var IdHTTP: TIdHTTP; SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; RequestBody: TStringStream; begin Result := ''; IdHTTP := TIdHTTP.Create(nil); SSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); RequestBody := TStringStream.Create('{"x": "2333232", "x1": "12", "dt": "xxxxx}'); try try IdHTTP.Request.ContentType := 'application/json'; IdHTTP.Request.CustomHeaders.Add('x-api-dddddsdsds'); SSLIOHandler.SSLOptions.Method := sslvTLSv1_2; IdHTTP.IOHandler := SSLIOHandler; Result := IdHTTP.Post('URL', RequestBody); except on E: Exception do Result := 'Erro ao enviar a requisição: ' + E.Message; end; finally IdHTTP.Free; SSLIOHandler.Free; RequestBody.Free; end; end; Uso delphi xe7 da erro Erro ao enviar a requisição: Error connecting with SSL. error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number Inclusive usando restDebugger do delphi Com delphi alexandria vai numa boa.
  8. Ola Boa noite o ACBr tem algo sobre PIX do banco inter? https://developers.inter.co/references/pix
  9. Sabem o que e isso? Erro :An invalid character was found in text content Enviando a NFe em MG
  10. Pessoal, Estou emitindo um cupom nem sei pode isto, mas e um NFCe no valor de 160 mil reais. Mas e pra santa catarina e lá o limite e 200 mil. Retorno: Rejeição: NFC-e com valor total superior ao permitido para destinatário não identificado (Endereço) [R$ 10.000,00] mas esta identificado o endereço with EnderDest do begin xLgr := 'RUA TESTE'; xCpl := ''; xBairro := 'NAO ESPECIFICADO'; xMun := 'EXTERIOR'; cMun := 9999999; xPais := 'PARAGUAI'; cPais := 5860; CEP := 001001; UF:= 'EX'; nro := 0 end; end;
  11. Sabem se existe caso gertec gpos 800 com Delphi e pago? O acbr tem algo ? Vi no git da gertec algo sobre Delphi rio será que funciona no Alexandria Tô meio perdido por onde começar baixei o repositório do git mas fiquei na dúvida se funciona e investir neste hardware e morrer na praia
  12. johnbh3

    Ajuda SQL

    EXECUTE BLOCK RETURNS ( MES VARCHAR(10), TOTAL_VR_DOC NUMERIC (18,2) ) AS DECLARE VARIABLE MonthNumber INTEGER; DECLARE VARIABLE ANO INTEGER; BEGIN MonthNumber = 1; WHILE (MonthNumber <= 12) DO BEGIN MonthNumber = MonthNumber + 1; MES = MonthNumber; ANO = EXTRACT(YEAR FROM current_date); SELECT COALESCE(SUM(VR_DOC), 0) FROM CT_DUPL WHERE EXTRACT(MONTH FROM DTA_CONT) = :MonthNumber AND EXTRACT(YEAR FROM DTA_CONT) = :ANO INTO: TOTAL_VR_DOC; SUSPEND; END END fiz isso daqui nao se e e uma boa
  13. johnbh3

    Ajuda SQL

    Eu fiz pra teste esta procedure debugando ela faz o que quero, porem não retorna dados qdo da o suspende. Queria que retornasse o grid de dados. Seria o caso de usar o RETURNS? CREATE PROCEDURE SP1 ( START_VAL INTEGER, END_VAL INTEGER) AS-- DECLARE VARIABLE MES_I INTEGER; DECLARE VARIABLE MES_STR VARCHAR(3); BEGIN MES_I = :START_VAL; WHILE (MES_I <= :END_VAL) DO BEGIN MES_STR = CASE MES_I WHEN 1 THEN 'Jan' WHEN 2 THEN 'Fev' WHEN 3 THEN 'Mar' WHEN 4 THEN 'Abr' WHEN 5 THEN 'Mai' WHEN 6 THEN 'Jun' WHEN 7 THEN 'Jul' WHEN 8 THEN 'Ago' WHEN 9 THEN 'Set' WHEN 10 THEN 'Out' WHEN 11 THEN 'Nov' WHEN 12 THEN 'Dez' END; MES_I = MES_I + 1; SUSPEND; END END O que eu realmente queria que deu certo neste SQL, mas qual o problema uma soma por mes ocorre que de teste so tenho registro na tabela no mes 08/2023 dai so retornou um registro e quando for 0 (Zero) pra janeiro que e o caso por não haver pagamentos em CT_DUPL gera um registro Ou seja queria os 12 meses como retorno mesmo que não haja pagamentos dai vi como alternativa fazer while em procedure ou tem outra sugestão vocês? SELECT EXTRACT(MONTH FROM DTA_CONT) AS MES, EXTRACT(YEAR FROM DTA_CONT) AS ANO, SUM(VR_DOC) AS TOTAL_VR_DOC FROM CT_DUPL WHERE EXTRACT(YEAR FROM DTA_CONT) = EXTRACT(YEAR FROM CURRENT_DATE) GROUP BY EXTRACT(MONTH FROM DTA_CONT), EXTRACT(YEAR FROM DTA_CONT) ORDER BY ANO, MES;
  14. nesta para tem x86 e 64 - como a aplicação e 32. Até fiz com as duas Copei as duas unicas dll dela: libcrypto-1_1.dll e libssl-1_1.dll junto do exe Mesmo assim erro permanece : desabilitar SSL e deixar só TLS? como exatamente? Estou usando o delphi xe7 Baixei o delphi novo o mesmo codigo funciona
  15. function GetAccessToken: string; var IdHTTP: TIdHTTP; SSLHandler: TIdSSLIOHandlerSocketOpenSSL; Params: TStringList; AccessTokenResponse: string; begin Result := ''; IdHTTP := TIdHTTP.Create(nil); SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP); Params := TStringList.Create; try // Configurando o gerenciador SSL para permitir conexões seguras (HTTPS) IdHTTP.IOHandler := SSLHandler; // Configurando a versão do protocolo SSL/TLS para TLSv1.1 SSLHandler.SSLOptions.Method := sslvTLSv1_2; // Habilitar suporte ao protocolo TLSv1.1 e TLSv1.2 SSLHandler.SSLOptions.SSLVersions := [sslvTLSv1_2]; // Configurando o cabeçalho da solicitação IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP.Request.UserAgent := 'PostmanRuntime/7.32.3'; IdHTTP.Request.Accept := '*/*'; IdHTTP.Request.AcceptEncoding := 'gzip, deflate, br'; IdHTTP.Request.Connection := 'keep-alive'; // Configurando a autenticação básica (Basic Auth) IdHTTP.Request.BasicAuthentication := True; IdHTTP.Request.Username := '123'; IdHTTP.Request.Password := '123'; // Parâmetros do corpo da solicitação Params.Add('grant_type=client_credentials'); Params.Add('scope=pos.api agreements.api b2bplatform.api accounts.api wallet.api'); try // Realizando a solicitação POST com os parâmetros no corpo AccessTokenResponse := IdHTTP.Post('https://utldoparceiro', Params); // Processando a resposta... // (código de processamento da resposta permanece o mesmo) except on E: Exception do begin ShowMessage(E.Message); end; end; finally Params.Free; IdHTTP.Free; end; end; no postman retorna sem problemas no delphi Obter token de API Error connecting with SSL. error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
  16. Eu tenho que fazer uma conexão a ser feita com API No postman eu tenho sucesso configurando assim Na aba Authorization campo usarname: TESTE password: TESTE Fui em settings coloquei o certificado host: WWWW.teste PFX File: /C:/demos/idHttp/.pfx Passphrase: dkkdkdsoidodsi Tenho 11 Heads Content-Type: application/json; charset=utf-8 Content-Length: 28 Host: <calculated when request is sent> User-Agent: PostmanRuntime/7.32.3 Accept: */* Accept-Encoding: gzip, deflate, br Connection: keep-alive id: 12935088000899 Authorization: Basic Dusudiudsiduisdudidsui Meu body e um raw (JSON) { "data": { "Route": "POSLIVE" } } Quero o codigo em delphi pra isto IdSSLIoHanderSocket e IdHtpp usei o TIdSSLIOHandlerSocketOpenSSL que tem opção de KeyFile O arquivo da API e um .pfx Documentação : https://documenter.getpostman.com/view/5095160/2s93RZLpKD#d5b0c372-b42d-4eb1-ac60-651a61ec89e4 var IdHTTP: TIdHTTP; IdSSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; RequestContent: TStringStream; Response: string; begin IdHTTP := TIdHTTP.Create(nil); IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP); try IdSSLIOHandler.SSLOptions.Method := sslvTLSv1_2; IdSSLIOHandler.SSLOptions.SSLVersions := [sslvTLSv1_2]; IdSSLIOHandler.SSLOptions.Mode := sslmClient; IdSSLIOHandler.SSLOptions.VerifyMode := []; IdSSLIOHandler.SSLOptions.VerifyDepth := 0; IdSSLIOHandler.SSLOptions.CipherList := 'HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!DSS:!ADH:!IDEA'; IdHTTP.IOHandler := IdSSLIOHandler; IdHTTP.Request.Host := 'uat-loyalty.dotznext.com'; IdHTTP.Request.ContentType := 'application/json'; IdHTTP.Request.CustomHeaders.AddValue('id', 'dsdsdsdds'); IdHTTP.Request.CustomHeaders.AddValue('Authorization', 'Basic sddsds=='); RequestContent := TStringStream.Create('{ "data": { "route" : "POSUSER", "input" : { "customerId": "ds", "employeeId": "sd", "pdvId": "2" } } }', TEncoding.UTF8); try Response := IdHTTP.Post('https://wwww', RequestContent); ShowMessage(Response); // Aqui você pode processar a resposta recebida finally RequestContent.Free; end; finally IdHTTP.Free; IdSSLIOHandler.Free; end; Tentei esta forma da Erro conectiing with ssl wrong vers ion number Tentei usar oTIdSSLIOHandlerSocketOpenSSL var IdHTTP: TIdHTTP; IdSSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; Response: string; RequestBody: TStringStream; AuthorizationHeader: string; begin IdHTTP := TIdHTTP.Create(nil); IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); try // Configuração do IOHandler SSL IdSSLIOHandler.SSLOptions.Method := sslvTLSv1_2; IdSSLIOHandler.SSLOptions.Mode := sslmClient; IdSSLIOHandler.SSLOptions.SSLVersions := [sslvTLSv1_2]; IdSSLIOHandler.SSLOptions.CertFile := 'C:\demos\idHttp\arquivo.pfx'; IdSSLIOHandler.SSLOptions.KeyFile := IdSSLIOHandler.SSLOptions.CertFile; IdSSLIOHandler.SSLOptions.Method := sslvSSLv23; IdSSLIOHandler.SSLOptions.VerifyMode := []; IdSSLIOHandler.SSLOptions.VerifyDepth := 0; // Configuração do certificado IdSSLIOHandler.SSLOptions.SSLContext.SetDefaultPasswordCallback(SSLPasswordCallback); // Configuração do componente IdHTTP IdHTTP.IOHandler := IdSSLIOHandler; IdHTTP.Request.ContentType := 'application/json; charset=utf-8'; IdHTTP.Request.CustomHeaders.Add('id: 221211'); IdHTTP.Request.CustomHeaders.Add('Content-Length: 28'); IdHTTP.Request.CustomHeaders.Add('User-Agent: PostmanRuntime/7.32.3'); IdHTTP.Request.CustomHeaders.Add('Accept: */*'); IdHTTP.Request.CustomHeaders.Add('Accept-Encoding: gzip, deflate, br'); IdHTTP.Request.CustomHeaders.Add('Connection: keep-alive'); // Configuração do cabeçalho de autorização AuthorizationHeader := 'sdsds'; IdHTTP.Request.CustomHeaders.Add('Authorization: Basic ' + TIdEncoderMIME.EncodeString(AuthorizationHeader)); // Corpo da solicitação RequestBody := TStringStream.Create('{"data": {"Route": "POSLIVE"}}', TEncoding.UTF8); try // Fazendo a solicitação POST Response := IdHTTP.Post('https://wwww', RequestBody); ShowMessage(Response); // Aqui você pode processar a resposta recebida finally RequestBody.Free; end; finally IdHTTP.Free; IdSSLIOHandler.Free; end; end; Neste caso reclama de PEM_read_bio: not start line Ja instalei o pfx tamnem na maquina este e um certificado cedido dotz
  17. Boa tarde Não entendi Como assim? pacote completo do projeto NFS-e Padrão Nacional Você diz credenciar? Não e MEI o CNPJ envolvido nos testes. Você sabe me dizer se eu fizer a adesão ao nacional para BH. Eu tenho que parar de usar o metodo anterior?
  18. Creio que agora deva da certo. Deu algumas rejeições fui ajustando a ultima e: CNPJ do emitente prestador não encontrado no cadastro CNC NFS-e na data de processamento. Neste caso eu devo precisa me credenciar. Mas não posso fazer isto neste CNPJ, porque posso deixar de emitir pelo metodo atual ne? um substitui o outro? estou em homologação. Se um nao substitui, sabem o link do credenciamento?
  19. Certo vou testar e te aviso @Italo Giurizzato Junior
  20. Mas cara não tem nada de diferente. Quando uso o metodo de envio sem ser no padrão nacional. Não faz sentido esta em TLS1.2. Do nada passou dar isto. A unica coisa que fiz foi acessar a URL pelo chorme https://sefin.producaorestrita.nfse.gov.br/SefinNacional/nfse e pediu meu certificado e deu erro de permissão. Eu não acredito ter nada haver com certificado, ele funciona no ecac (NFe, NFSe normal, NFCe). Somente padrão nacional dando isto. Se eu tento ir pelo site https://www.nfse.gov.br/EmissorNacional/Login?ReturnUrl=%2fEmissorNacional e clico em certificado digital da isso. Mas tenho certeza ou pura conhecidencia, como eu tava tendo o erro de NIF e retorou esta url a URL: https://sefin.producaorestrita.nfse.gov.br/SefinNacional/nfse fui testar no chorme e começou da pau. Mas NFe, ta funcionando, e no proprio demoro do NFSEx quando não e padrão nacional comunica certinho. Mas real que meu erro principal era este O grupo de informações de endereço no exterior deve ser informado obrigatoriamente quando o tomador for identificado pelo NIF. Hoje de manhã ja voltou funcionou, e agora voltou o erro original de antes felizmente ou infelizmente hahaha E0206
  21. em debug deu erro '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'#$D#$A'<html xmlns="http://www.w3.org/1999/xhtml">'#$D#$A'<head>'#$D#$A'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>'#$D#$A'<title>403 - Forbidden: Access is denied.</title>'#$D#$A'<style type="text/css">'#$D#$A'<!--'#$D#$A'body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}'#$D#$A'fieldset{padding:0 15px 10px 15px;} '#$D#$A'h1{font-size:2.4em;margin:0;color:#FFF;}'#$D#$A'h2{font-size:1.7em;margin:0;color:#CC0000;} '#$D#$A'h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} '#$D#$A'#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;'#$D#$A'background-color:#555555;}'#$D#$A'#content{margin:0 0 0 2%;position:relative;}'#$D#$A'.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}'#$D#$A'-->'#$D#$A'</style>'#$D#$A'</head>'#$D#$A'<body>'#$D#$A'<div id="header"><h1>Server Error</h1></div>'#$D#$A'<div id="content">'#$D#$A' <div class="content-container"><fieldset>'#$D#$A' <h2>403 - Forbidden: Access is denied.</h2>'#$D#$A' <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>'#$D#$A' </fieldset></div>'#$D#$A'</div>'#$D#$A'</body>'#$D#$A'</html> Se tento acessar pelo pelo navegador a url: https://sefin.producaorestrita.nfse.gov.br/SefinNacional/nfse da o mesmo erro. Provavelmente e portal da nfe fora do ar. Curiosamente, isto começou a dar porque joguei esta URL no navegador mas não tem nada haver ne? Não sei se vale a pena tratamento: O erro ocorre em: EmiteResponse.ArquivoRetorno := AService.GerarNFSe(ConfigMsgDados.DadosCabecalho, EmiteResponse.ArquivoEnvio); unit: ACBrNFSeXProviderBase
  22. Agora da um erro Expected "(But found invalid symbol 1,2) observação sem fazer uma alteração sequer no demo do acbr.
  23. exemplo do arquivo agora deu pra adicionar! Ele em xml nã deu pelo tamanho 3123060803010700019456000000000000001-rps.zip
  24. Perdão e que o forum ñ me deixa anexar!
×
×
  • 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.

The popup will be closed in 10 segundos...