Search the Community
Showing results for tags 'rest'.
-
Pessoal, estou tentando fazer uma requisição post para a api de BOLETOS do banco Itau. Eu consegui pegar a o accessToken utilizando o http, porém na hora de enviar o boleto, recebo a menagem de erro que enviei anexo deste post ("sslv3 alert handshake failure"). Vi em outro post, a recomendação de utilizar o Arat Synapse. Porém fiquei com dúvida de como enviar os certificados. Aqui está o meu código: http := TIdHTTP.Create(nil); ssl := TIdSSLIOHandlerSocketOpenSSL.Create(nil); params := TStringList.Create; jObject:= TJsonObject.Create(nil); // ssl.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]; ssl.SSLOptions.CertFile := 'caminho\ARQUIVO_CERTIFICADO.crt'; ssl.SSLOptions.KeyFile := 'caminho\ARQUIVO_CHAVE_PRIVADA.key'; ssl.SSLOptions.Mode := sslmClient; // SSL.SSLOptions.Method := sslvTLSv1; // SSL.SSLOptions.Mode := sslmUnassigned; http.IOHandler := ssl; http.Request.ContentType := 'application/json'; http.Request.CustomHeaders.AddValue('x-itau-apikey', 'client_key'); http.Request.CustomHeaders.Add('Authorization:Bearer ' + token); response := http.Post(url, payStream); O código comentado, foram opções que já usei. Tentei utilizar também o TRequest. client := TRESTClient.Create(nil); certFile := TMemoryStream.Create; certFile2 := TMemoryStream.Create; try client.BaseURL := 'url'; request := TRESTRequest.Create(nil); certFile.LoadFromFile('caminho\ARQUIVO_CERTIFICADO.crt'); certFile2.LoadFromFile('caminho\ARQUIVO_CHAVE_PRIVADA.key'); try request.Client := client; request.Method := rmPOST; request.AddParameter('x-itau-apikey', 'client_key', pkHTTPHEADER); request.AddParameter('Content-Type', 'application/x-www-form-urlencoded', pkHTTPHEADER); request.AddParameter('Authorization', 'Bearer ' +token, pkHTTPHEADER); request.AddBody(certFile, TRESTContentType.ctAPPLICATION_OCTET_STREAM); request.AddBody(certFile2, TRESTContentType.ctAPPLICATION_OCTET_STREAM); request.AddBody(payload.text, TRESTContentType.ctAPPLICATION_JSON); request.Execute; response := request.Response; Se puderem dar alguma dica do que posso fazer, ficaria muito grato.
-
Bom dia, estou tentando fazer uma integração de boleto com o Banco do Brasil, usando o RestRequest, quando eu faço o POST pelo POSTMAN, vai tudo 100%, porem quando eu tento colocar em meu projeto delphi, da Bad Request. Os parâmetros que eu tenho que passar sao: - URL Header - Authorization - Content_type - Content_lenght - Host Body - Grand_Type - Scope Passando somente estes, no POSTMAN funciona. porem em meu código não vai, irei deixar uma imagem do POSTMAN e meu código como exemplo, se puderem me ajudar, muito agradecido. procedure TFRMFI056A.GeraToken; var AuthHeaderValue: String; ClientId, ClientSecret: String; Content: TStringStream; ContentLength: string; RequestBody: TStringStream; begin ClientId := BaGeralModel.Clientidpixbb; ClientSecret := BaGeralModel.Clientsecretpixbb; try RESTClient4.BaseURL := 'https://oauth.hm.bb.com.br/oauth/token'; AuthHeaderValue := 'Basic xxxxCodigoBasicAquixxxx; RESTRequest4.Params.AddHeader('Authorization', AuthHeaderValue); RESTRequest4.Params.ParameterByName('Authorization').Options := [poDoNotEncode]; RequestBody := TStringStream.Create('grant_type=client_credentials&scope=cobrancas.boletos-requisicao+cobrancas.boletos-info'); RESTRequest4.ClearBody; RESTRequest4.AddBody(RequestBody, TRESTContentType.ctAPPLICATION_X_WWW_FORM_URLENCODED); RESTRequest4.Params.AddHeader('Content-Type', 'application/x-www-form-urlencoded'); ContentLength := IntToStr(RequestBody.Size); RESTRequest4.Params.AddHeader('Content-Length', ContentLength); // Adicionar Host ao cabeçalho RESTRequest4.Params.AddHeader('Host', 'oauth.hm.bb.com.br'); try RESTRequest4.Execute; if RESTResponse4.StatusCode = 404 then begin // Exibir o conteúdo da resposta em um Memo ou mostrar uma mensagem de erro Memo1.Lines.Text := RESTResponse4.Content; ShowMessage('Erro 404: O recurso solicitado não foi encontrado.'); end; except on E: Exception do begin // Exibir mensagem de erro genérica Memo1.Lines.Text := RESTResponse4.Content; ShowMessage('Erro ao tentar realizar a solicitação: ' + E.Message); end; end; finally end; end;
-
Olá, estou realizando a integração com a API da RvHub para Recarga de Celulares. Todas as requisições foram testadas no Insomnia e estão retornando corretamente. Porém, no Dephi Seattle, utilizo os componentes IdHTTP e os COmponentes REST para realizar as requisições, porém o retorno é o seguinte. Para o IdHTTP : 403: Forbbiden Para os REST: 405 Method Not Allowed Ocorre em todas as requisições da API, onde em algumas delas é uma requisição POST sem BODY com apenas o HEADER. Abaixo as linhas de código: Delphi Seattle API RvHub IdHttp: var idHttp : TidHttp; SSl : TIdSSLIOHandlerSocketOpenSSL; JsonStreamRetorno : TStringStream; begin JsonStreamRetorno := TStringStream.Create('', TEncoding.UTF8); idHttp := TidHttp.Create(nil); SSl := TIdSSLIOHandlerSocketOpenSSL.Create(nil); SSl.SSLOptions.Method := sslvTLSv1_2; idHttp.IOHandler := SSL; idHttp.Request.Clear; idHttp.Request.CustomHeaders.Clear; idhttp.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0'; idHttp.Request.ContentType :='application/x-www-form-urlencoded'; idHttp.Request.Accept:='application/json'; idhttp.Request.Charset := 'UTF-8'; idhttp.HandleRedirects := True; idHttp.Request.CustomHeaders.AddValue('Content-Type','application/x-www-form-urlencoded'); idHttp.Request.CustomHeaders.AddValue('Authorization','Basic NmVrNnFobjk0dml0M2piNDI1MDdic2U0czp1bDdmMWg4MGMzMThwdTRicDRlN3NucTdtbW5kYjlwY3BjNm8zdjZzbmIyMzlzb2F1dDg='); try idHttp.Post('http://auth.sbx.rvhub.com.br/oauth2/token?grant_type=client_credentials',JsonStreamRetorno); except on E: Exception do ShowMessage('Error on request:'#13#10 + E.Message); end; end; REST: var FRestClient: TRESTClient; FRestRequest: TRESTRequest; FRestResponse: TRESTResponse; begin FRestClient := TRESTClient.Create(nil); FRestRequest := TRESTRequest.Create(nil); FRestResponse := TRESTResponse.Create(nil); FRestRequest.Client := FRestClient; FRestRequest.Response := FRestResponse; FRestClient.BaseURL := 'https://auth.sbx.rvhub.com.br/oauth2/token?grant_type=client_credentials'; FRestClient.ContentType := 'application/x-www-form-urlencoded'; FRestRequest.Accept := 'application/json'; FRestRequest.Params.AddHeader('Content-Type','application/x-www-form-urlencoded'); FRestRequest.Params.AddHeader('Authorization','Basic NmVrNnFobjk0dml0M2piNDI1MDdic2U0czp1bDdmMWg4MGMzMThwdTRicDRlN3NucTdtbW5kYjlwY3BjNm8zdjZzbmIyMzlzb2F1dDg='); FRestRequest.Body.ClearBody; FRestRequest.Method := rmPOST; FRestRequest.Execute; ShowMessage(FRestResponse.StatusCode.ToString()+#13+FRestRequest.Response.StatusText); end;
-
Olá a todos estou usando REST para consumir uma API de um banco para o cadastro e emissão de boletos, consegui fazer a inclusão e a pesquisa. Não estou conseguindo receber o PDF do boleto, alguém sabe quais as configurações tenho que usar para receber esse arquivo? Obrigado
- 1 reply
-
- request
- restclient
-
(and 1 more)
Tagged with:
-
Pré lançamento do curso! Já pensou em ter uma API só sua para Emitir NF-e/NFC-e de qualquer dispositivo ou linguagem usando o Projeto ACBr? Não perca tempo e se inscreva, o curso está em Pré Lançamento com um super desconto no link abaixo e mais construir sua API usando o Projeto DelphiMVCFrameWork também opensource! Diminua o tempo de emissão de suas NF-e/NFC-e com alta latência em servidores cloud e tenha somente seus clientes concorrendo entre eles para essa emissão Ofereça serviço de backup de xml para seus clientes! Tem brinde no curso, vamos rodar uma aplicação FMX em um dispositivo Smart G800 da Gertec consumindo a API construida no curso No link abaixo possui mais informações do Curso
-
Olá a todos! Estou tentando sem sucesso consumir a API do PayPal, retorna o erro "HTTP/1.0 400 Bad Request" parece ser pacote mal formado, imagino que tenha alguma coisa (ou muita coisa errada) nos parâmetros que escrevi. Alguém teria algum exemplo de integração com PayPal ou pode me ajudar no código abaixo, hoje estamos tentando seguir a documentação fornecida pelo site do PayPal? //curl -v https://api.sandbox.paypal.com/v1/oauth2/token \ // -H "Accept: application/json" \ // -H "Accept-Language: en_US" \ // -u "client_id:secret" \ // -d "grant_type=client_credentials" //Retirado de: https://developer.paypal.com/docs/api/get-an-access-token-curl/ procedure TFPrincipal.Button3Click(Sender: TObject); var http: TIdHTTP; Handler: TIdSSLIOHandlerSocketOpenSSL; listaDeParametros : TStringStream; UrlConexao : string; slParameters : TStringStream; clienteID, secret : string; ResultadoEnvio : string; begin clienteID := '99999999999999999999999999999999999999999999999999999999999999999999999999999999'; secret := '88888888888888888888888888888888888888888888888888888888888888888888888888888888'; UrlConexao := 'https://api.sandbox.paypal.com/v1/oauth2/token'; Handler := TIdSSLIOHandlerSocketOpenSSL.create; Handler.SSLOptions.Method := sslvTLSv1_2; Handler.SSLOptions.Mode := sslmClient; http := TIdHTTP.Create(Application); http.Request.ContentType := 'application/x-www-form-urlencoded'; http.Request.Accept := 'application/json'; http.Request.AcceptLanguage := 'en_US'; http.Request.BasicAuthentication := true; http.Request.Username := clienteID; http.Request.Password := secret; http.IOHandler := Handler; slParameters := TStringStream.Create('grant_type=client_credentials'); try ResultadoEnvio := http.Post(urlconexao,slParameters ); ShowMessage(ResultadoEnvio); finally slParameters.Free; end; end; Desde já agradeço qualquer dica a respeito.
-
Olá, Recentemente, o município de Araras (3503307) realizou a troca do provedor de NFSe. Antes utilizava-se o provedor SimplISS, ocorrendo a migração para o provedor SIGISS Web no dia 01/11/2019. Estou disposto a contribuir para o projeto ACBr a implementar este provedor, já que pelo o que eu percebi, pararam no meio do processo. É importante salientar que este web service não utiliza o protocolo SOAP para a comunicação. Para se emitir a NFSe é necessário no SIGISS Web utilizar a arquitetura REST, podendo enviar os dados em formato XML ou JSON. Já troquei meu Cidades.ini para o provedor SigIss e possuo um SigIss.ini também. Gostaria de saber como prosseguir para configurar o SigIss.ini, já que não será utilizado mais o padrão SOAP. Obs: Foi solicitado para o suporte do SIGISS Web um XSD (Schema) para validar os layouts XML, mas fui avisado que não existe um.
-
Olá pessoal! Estou há alguns dias com um problema sem solução, realizando a integração do meu sistema em Delphi com o iFood estou me deparando com um erro no método de Atualizar um Item do cardápio. Segue a rotina que estou utilizando e logo abaixo o erro apresentado: restClient := TRESTClient.Create(nil); restClient.Accept:='application/json, text/plain; q=0.9, text/html;q=0.8,'; restClient.AcceptCharset:='utf-8, *;q=0.8'; RESTClient.BaseURL:='https://pos-api.ifood.com.br/v1.0/skus/'+externalCode; restRequest:=TRESTRequest.Create(nil); restRequest.Client := restClient; restRequest.Method := rmPATCH; RESTResposta:=TRESTResponse.Create(Self); restRequest.Response := RESTResposta; restRequest.AddParameter('Content-Type','multipart/form-data',pkHTTPHEADER,[poDoNotEncode]); RESTRequest.AddParameter('Authorization','bearer '+aToken,pkHTTPHEADER,[poDoNotEncode]); RESTRequest.AddParameter('Accept','application/json',pkHTTPHEADER,[poDoNotEncode]); jsonObject := TJSONObject.Create; jsonObject.AddPair(TJSONPair.Create('merchantId',TJSONNumber.Create(dados.FDDadosiFoodMERCHANT_ID.value))); jsonObject.AddPair(TJSONPair.Create('name',TJSONString.Create(dados.FDProdutosNOME_PROD.AsString))); jsonObject.AddPair(TJSONPair.Create('price',TJSONObject.Create(TJSONPair.Create('value',TJSONNumber.Create(dados.FDProdutosPRECO1.AsString))))); restRequest.AddBody(jsonObject); restRequest.Execute; if(RESTResposta.StatusCode=202)then begin MemoStatus.Lines.Add('Produto alterado com sucesso!'); Result:=true; end else begin MemoStatus.Lines.Add(RESTResposta.Content); Result:=false; end; Erro apresentado: "500 - Internal Server Error" '{"timestamp":"2020-03-31T13:59:27.583+0000","status":500,"error":"Internal Server Error","exception":"org.springframework.web.multipart.MultipartException","message":"org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: Missing initial multi part boundary","path":"/skus/1"}' Se alguém puder me auxiliar ou já tenha implementado isso ou passado por esse erro, fico no aguardo. Obrigado!
-
untilCodeRage 2020 CodeRage 2020 está chegando! Reserve seu lugar! É hora da sua conferência de desenvolvedores online preferida: CodeRage! O CodeRage é feito pela nossa incrível comunidade de usuários. Venha ver o que há de novo, quais são os planos para o futuro, aprenda muitas coisas novas e faça novos amigos! CodeRage 2020 Brasil: 11, 12 e 13 de Fevereiro --- Dia 11 --- • 09:00 - Universo RAD: O que esperar de 2020? Novidades para o seu desenvolvimento. (Fernando Rizzato - Embarcadero) • 09:40 - NFC-E em Linux com Assinatura: como fazer? (Juliomar Marchetti - MVP) • 10:20 - Entendendo o HTTP para entender o REST (Mario Guedes - MVP) • 11:00 - Horse: criando uma API escalável e minimalista (Vinicius Sanchez - Fiorilli Software) • 11:40 - CI/CD na AWS. Tudo o que precisa saber! (José Araújo - MVP) • 12:20 - Do Legado ao Microservices com RADServer (Kelver Merlotti - Embarcadero) --- Dia 12 --- • 09:00 - TableSpaces e Change Views no Interbase 2020 (Dormevilly Tertius - Embarcadero) • 09:40 - Segurança Biométrica com FireMonkey (Gabriel de Oliveira Silva - ProAnsi) • 10:20 - Pagamentos em Dispositivos Android (Newton Michel de Oliveira - MVP) • 11:00 - E se os gerentes do RAD Studio fossem cards do FIFA? (Landerson Gomes - MVP) • 11:40 - O mundo evoluiu e o Delphi acompanhou. Será que você perdeu algo? (Rafael Araujo - Embarcadero) • 12:20 - Top Recursos do Windows 10 para seus Aplicativos VCL (Régys Borges da Silveira - MVP) --- Dia 13 --- • 09:00 - Universo Sencha: O que esperar de 2020? Novidades para o seu desenvolvimento WEB (Fernando Rizzato - Embarcadero) • 09:40 - Aplicações Ext JS baseadas em NPM com Sencha Open Tooling (Wemerson Januario - MVP) • 10:20 - Boas Práticas com o Grid Ext JS (Daniel Bsource- MVP) • 11:00 - Construíndo Aplicações Angular com ExtAngular (Marcelo Varela de Souza - MVP) • 11:40 - ExtReact na Prática (André Spisila - MVP) Registre-se hoje Prepare-se para CodeRage! - RAD Studio 10.3 Release 3 Recentemente lançada, nossa mais nova edição do RAD Studio, 10.3.3 Rio, capacita os desenvolvedores a criar aplicativos impressionantes e de alto desempenho para Windows, macOS, iOS, Android e Linux Server usando a mesma base de código nativo. Muitas sessões do CodeRage 2020 utilizarão o RAD Studio 10.3.3 Rio, e você pode, também, com uma avaliação gratuita de 30 dias. Prepare-se para CodeRage!
-
No dia 22 de outubro de 2019, ocorreu mais uma edição da Embarcadero Conference. Nessa edição, o colega Wagner Landgraf, da TMS Software, apresentou uma interessante palestra, de como montar o seu próprio Servidor de NFe/NFCe, em Nuvem, usando API REST, e é claro, os componentes do ACBr.. A partir da ideia dessa palestra, ele montou um curso completo, e está disponibilizando o mesmo gratuitamente, com os Fontes do projeto... Clique no botão abaixo, e se inscreva já no curso... Quero me inscrever no curso
-
-
Visulizar Arquivo NFC-E NO MOBILE: DA TEORIA A PRÁTICA Por: @Régys Silveira Demonstração prática de como construir servidores REST no Delphi com o intuito de facilitar a emissão de NFC-e/CF-e utilizando aplicativos mobile. Baixe os fontes e apresentação em: https://regys.com.br/palestra-dia-do-acbr/ Veja o vídeo em: Autor Daniel Simoes Enviado 19-11-2018 Categoria Dia do ACBr 1a edição
-
Pessoal, Alguém já implementando ou com interesse de implementarmos em conjunto uma terceira opção de integração com o ACBrMonitorPlus? Me refiro a ter uma comunicação por webservice ou REST, semelhante para que seja possivel acessar funcionalidades do monitor através de métodos HTTP? Abraço!
-
- acbrmonitor plus
- webservice
-
(and 2 more)
Tagged with:
-
Boa tarde amigos, Estou passando aqui para convidar à todos para conhecer e acompanhar o projeto REST Dataware. O Rest Dataware é uma suíte de componentes que abstrai a complexidade para acesso à dados remotos em uma aplicação construída utilizando a arquitetura multicamadas. Totalmente free e de código fonte aberto, assim como o ACBr. O REST Dataware é mais uma iniciativa que visa fortalecer a comunidade Delphi, reduzindo o tempo de desenvolvimento e permitindo que o desenvolvedor foque naquilo que é importante: as regras de negócio da aplicação. Link para o Skype: https://join.skype.com/tpAo84MDZXP5
-
Tenho que acessar uma base de dados que me retorna um link para baixar um PDF. É assim: "https://www.xyz.com.br/pasta/acao/venda.php?acao=ETIQUETA&id_venda=1618786257" No navegador me retorna um PDF para baixar ou abrir. Usei os componentes IdHTTP e IdSSLIOHandlerSocketOpenSSL. Tentei dessas duas maneiras e não consegui nada (onde nUrl é o mencionado acima). fileDownload := TFileStream.Create('etiqueta.pdf', fmCreate); try IdHTTP1.Get(nUrl, fileDownload); finally FreeAndNil(fileDownload); end; E assim: Response := TStringStream.Create(''); try IdHTTP1.Get(nUrl, Response); Memo1.Lines.Text := Response.DataString; except on E: EIdHTTPProtocolException do begin Memo1.Lines.Text := E.ClassName + ': '+E.Message; end; end; WBLoadHTML(Response.DataString); Response.Free; Alguém pode me dar uma mão com isso? Grato
-
Nao estou mais conseguindo enviar danfe desde 11/10/13, esta dando a seguinte msg: WebService Consulta Status serviço: - Inativo ou Inoperante tente novamente. - A autoridade de certificação não é válida ou está incorreta - URL:https://nfe.sefaz.am.gov.br/services2/services/NfeStatusServico2 SOAPAction:http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2 quando tento acessar os links acima, recebo a msg do titulo acima