Pesquisar na Comunidade
Showing results for tags 'ifood'.
Encontrado 5 registros
-
Olá, estou tendo dificuldades para conseguir consumir a API do IFood, não estou conseguindo nenhum avanço, alguem conseeguem me auxiliar?
-
RESTFULL DATAWARE Integração com IFOOD nova API
um tópico no fórum postou João Carlos Almeida Prado Dúvidas não relacionadas ao ACBr
Meu caros, abri este tópico pois APANHEI para conseguir usar as novas API´s do IFOOD, e resolvi contribuir. usando o INDY10 do DELPHI, deparei com este erro: Error connecting with SSL. tlsv1 alert protocol version Tentei atualizar o INDY, como me recomendaram, mas ferrei meu DELPHI, tive que REINSTALAR. Nos fóruns, vi que vários programadores sugeriram usar o RESTFULL - DATAWARE do DELPHI. Pois bem, então ai vai a dica: Antes de implementar as suas funções, teste a comunicação com o servidor usando: TOOLS - REST DEBUGER ( do seu DELPHI 10) Depois que funcionar, clique em COPIAR COMPONENTES e cole na sua aplicação. Mas o pulo do gato são os parâmetros e como configurar o componente, então, anexei a minha função que faz a comunicação, usando POST, GET, etc, definindo os parâmetros HEADER, GET/POST, e meu problema foi ai: cuidado! tem API que o KIND do parâmetro deve ser HEADER ou GET/POST, então, minha sugestão é tentar com os dois. No arquivo anexo tem funções complementares, para facilitar a implementação. Se você estiver obtendo erro de "FALTA DE PARAMETROS" ou ainda "no Route matched with those values" como resposta a sua requisição, esta segunda acontece quando você colocou dados no XML como HEADER e era pra ser GET/POST é isso, se alguém precisar de alguma ajuda, pode entrar em contato. Um abraço a todos... API_GERAL_REST.txt -
Bom dia a todos. Estou fazendo a integração do nosso ERP com o iFood, porém estou com uma dúvida que está me matando. Segundo a documentação da NFC-e em caso de emissão sem ser presencial o campo indPres tem que ser igual à 4 - Entrega a domicílio. E se for esse o caso será obrigatório informar os dados do destinatário (nome, CPF e endereço de entrega). Porém no iFood o cliente não é obrigado a informar o CPF na nota, como eu emito uma NFC-e nesse caso, em que se trata de uma venda delivery porém o cliente optou por não informar o CPF na nota? E no caso da transportador eu coloco os dados da empresa do meu emissor ou crio uma transportadora iFood?
-
Galera, Bom dia! Estou com um problema, por alguns dias e não consigo resolver. Estou realizando a integração do meu sistema com o iFood. Estou realizando alguns testes, por enquanto, estava obtendo sucesso, até tentar cadastrar o produto na API do iFood. O procedimento que estou utilizando para cadastro é o seguinte: procedure TfrmPrincipal.btnCriarProdutoClick(Sender: TObject); var iStringListProduto : TStringList; iRespostaIfood : string; iJSON : string; iJSONStream : TStringStream; iJSONEnviar : TIdMultipartFormDataStream; begin iJSONEnviar := TIdMultiPartFormDataStream.Create; try iJSON := ('{"merchantId": MerchantID,' + //CÓD DO RESTAURANTE '"externalCode":"205",' + '"availability": "AVAILABLE",' + '"name": "X BURGUER - TESTE",' + '"description": "PÃO, HAMBURGUER E QUEIJO",' + '"order": 1,' + '"schedules": [],' + '"price":{' + '"originalValue": 0,' + '"promotional": false,' + '"value": 12.50}'+ '}'); mRetorno.Lines.Clear; mRetorno.Lines.Add(iJSON); iJSONEnviar.AddFormField('sku', iJSON); //Configura o HTTP IdHTTPConexao.Request.Clear; //IdHTTPConexao.Request.CharSet := 'UTF-8'; IdHTTPConexao.Request.CustomHeaders.Clear; IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType); IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json'); IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Disposition', 'form-data; name="sku"'); IdHTTPConexao.Response.CharSet := 'UTF-8'; try iRespostaIfood := IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONEnviar); //201 = Indica que novos parâmetros foram criados com sucesso if IdHTTPConexao.ResponseCode = 201 then Application.MessageBox(PWideChar('Produto Cadastrado com Sucesso!'), 'Informação', MB_OK+MB_ICONINFORMATION); except on e:EIdHTTPProtocolException do begin if (e.ErrorCode <> 200) or (e.ErrorCode <> 201) then begin Application.MessageBox(PWideChar('Atenção! Ocorreu ao Cadastrar Produto no iFood. ' + e.ErrorMessage), 'Aviso', MB_OK+MB_ICONWARNING); Exit; end; end; end; finally end; end; Estou obtendo o seguinte retorno de erro: --------------------------- Aviso --------------------------- Atenção! Ocorreu ao Cadastrar Produto no iFood. <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'> Tue Nov 05 10:50:01 GMT-03:00 2019</div><div>There was an unexpected error (type=Bad Request, status=400).</div><div>Unable to parse form content</div></body></html> Obs. Esse mesmo JSON, executei no POSTMAN e estou obtendo um retorno positivo que o produto é cadastrado com sucesso, porém, o erro está no fonte e não estou conseguindo identificar. Se alguém, conseguir me auxiliar ou ajudar. Obrigado!
-
Integração Delphi+iFood+RestClient
um tópico no fórum postou IgorAcertSoft Object Pascal - Delphi & Lazarus
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!