Ir para conteúdo
  • Cadastre-se

datilas

Membros
  • Total de ítens

    521
  • Registro em

  • Última visita

  • Days Won

    2

Tudo que datilas postou

  1. veja se no manual de integração do TEF-D existe essa possibilidade, caso exista vc pode fazer a alteração baseado nessa da pay&go se vc possuir o manual posta aqui por favor. pois eu não tenho
  2. apenas para responder o tópico: do @Werner_Marques da uma olhada nesse link: veja se pode te ajudar para você poder alterar e usar com o seu GP. se os moderadores acharem que é duplicidade de tópico peço desculpa.(estou tentando ajudar)
  3. eu exportei o db do Sped Contribuições em MySQL,firebird e sqlite SPED_CONTRIBUICOES_fb.7z SPED_CONTRIBUICOES_my.7z SPED_CONTRIBUICOES_sqlite.7z
  4. eu exportei o db do sped fiscal efd em MySQL,firebird e sqlite esta com todas as tabelas para o layout 14 que começa a partir de 01/01/2020 EFD_L14_2020_fb.7z EFD_L14_2020_my.7z EFD_L14_2020_sqlite.7z
  5. o que esta me encafifando é essa mensagem "Unsupported Media Type" tenta assim IdHTTPConexao.Request.Clear; IdHTTPConexao.Request.ContentType := 'application/json'; IdHTTPConexao.Request.CharSet := 'utf-8'; IdHTTPConexao.Request.CustomHeaders.Clear; IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); //IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json'); IdHTTPConexao.Response.ContentType := 'application/json'; IdHTTPConexao.Response.CharSet := 'utf-8';
  6. // comenta essa linha IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', iJSONEnviar.RequestContentType); IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); //deixa essa IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json');//deixa essa // comenta essa linha IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Disposition', 'form-data; name="sku"'); IdHTTPConexao.Response.CharSet := 'UTF-8'; código limpo pra não confundir: Var iRespostaIfood: String; iJSON: String; iJSONStream, AResponseContent: TStringStream; Begin AResponseContent := TStringStream.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); iJSONStream := TStringStream.Create(iJSON); //Configura o HTTP IdHTTPConexao.Request.Clear; IdHTTPConexao.Request.CustomHeaders.Clear; IdHTTPConexao.Request.CustomHeaders.AddValue('Authorization', 'Bearer ' + self.fToken); IdHTTPConexao.Request.CustomHeaders.AddValue('Content-Type', 'application/json'); IdHTTPConexao.Response.CharSet := 'UTF-8'; Try IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONStream, AResponseContent); iRespostaIfood := AResponseContent.DataString; //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 FreeAndNil(iJSONStream); FreeAndNil(AResponseContent); End;
  7. tenta ssim: Var iStringListProduto: TStringList; iRespostaIfood: String; iJSON: String; iJSONStream, AResponseContent: TStringStream; // iJSONEnviar : TIdMultipartFormDataStream; Begin // iJSONEnviar := TIdMultiPartFormDataStream.Create; AResponseContent := TStringStream.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); iJSONStream := TStringStream.Create(iJSON); //Configura o HTTP IdHTTPConexao.Request.Clear; 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 IdHTTPConexao.Post('https://pos-api.ifood.com.br/v1.0/skus', iJSONStream, AResponseContent); iRespostaIfood := AResponseContent.DataString; //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 If Assigned(iJSONStream) Then FreeAndNil(iJSONStream); FreeAndNil(AResponseContent); End;
  8. pelo que vi na documentação não preencher ('"schedules": [],' +) caso não exista. { "merchantId": 999999, "ID do Restaurante (MerchantID)", "externalCode": "155", "COD PDV", "availability": "AVAILABLE", --"Disponibilidade do item", "name": "X BURGUER", "Nome do Item", "description": "PÃO, HAMBURGUER E QUEIJO", --" Descrição do Item (Composição)", "order": 0: "Ordem para o item aparecer no cardápio", "price": { "originalValue": 0: --"Valor Original do Item (Somente preencher caso o item estiver em promoção)", "promotional": false: --"Item está em promoção?" "value": 12 --"Valor do item (Valor que vai para aparecer na plataforma Ifood)" } } //preencher apenas se existir (schedules) { "merchantId": 999999, "ID do Restaurante (MerchantID)", "externalCode": 9430, "COD PDV" "availability": "AVAILABLE", --"Disponibilidade do item", "name": "Esfiha de Carne", "Nome do Item" "description": "Recheio com Mussarela.", --"Descrição do Item (Composição)", "schedules": [{ --"Disponibilidade dos itens " Dias da semana e horário funcionamento "" "dayOfWeek": "MONDAY" --" Dia da semana que funciona" }, { "dayOfWeek": "FRIDAY" --" Dia da semana que funciona" } ], "order": 1, --"Ordem para o item aparecer no cardápio", "price": { "Preço" "originalValue": 3.96, --"Valor Original do Item (Somente preencher caso o item estiver em promoção)" "promotional": true, --" Item está em promoção?" "value": 1.98 --"Valor promocional do item (Valor que vai para aparecer na plataforma Ifood)" } }
  9. pode ser por causa do acento na palavra "PÃO" tente converter o texto para utf-8 ou tira o acento para testar
  10. aqui eu tenho uma vps com owncloud a versão Enterprise tem um plugin que filtra arquivos por extensão o owncloud funciona como um dropbox então ele sobe o arquivo assim que possivel o que eu faço é compactar a pasta de xml's e o backup do db e altero a extensão para uma especifica ".bkx" e filtro no owncloud por essa extensão quando o cliente é infectado por um vírus a ultima versão que vai ter no meu backup é valida já que ransomware encripta o arquivo e altera a extensão, ele não afeta o arquivo que já subiu. sem contar que eu tenho total controle ao owncloud então eu posso habilitar e desabilitar um cliente sempre que necessário
  11. isso é um comportamento de keylogger dificilmente você vai conseguir que um antivírus te deixe em paz, se voce precisa de um bugtrace voce poderia usar : http://madshi.net/madExceptDescription.htm https://www.eurekalog.com/downloads_delphi.php por exemplo, mas existe outros.
  12. remova o IdHTTP1 do seu formulario e tente usar assim: Var code: Integer; sResponse: String; Json: String; JsontoSend, AResponseContent: TStringStream; iStatusCode: Integer; http: TIdHTTP; Begin Json := '{"Customer": { "DocumentType" : "CNPJ", "DocumentNumber" : "11229082000167" }, "Driver": { "PhoneCountry": "+55", "PhoneNumber": "19999690130", "Name": "Daniel Marcelo"} }'; JsonToSend := TStringStream.Create(Json); AResponseContent := TStringStream.Create(''); http := TIdHTTP.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.Response.ContentType := 'applicattion/json'; http.Response.CharSet := 'utf-8'; Try http.Post('https://api.tudoentregue.com.br/v1/customers/AddDriver', 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; End; eu adicionei essas duas linhas: Memo1.Lines.Add('Error on Response Code: ' + InttoStr(http.ResponseCode)); Memo1.Lines.Add('Error on Response Text: ' + http.ResponseText); porque caso ResponseCode for 403,404,422 o indy vai levantar um except sendo que //IdHTTP1.ResponseCode = 403 Motorista não Relacionado. *response vazio* //IdHTTP1.ResponseCode = 404 Motorista não Localizado. *response vazio* então você não conseguiria tratar o erro de Motorista não Localizado por exemplo. caso tenha resolvido seu problema marque o post como melhor resposta clicando no sinal de no canto superior esquerdo do post
  13. se quiser usar https é só ligar um IdSSLIOHandlerSocketOpenSSL1 ao IdHTTP1 e colocar as dlls ssleay32.dll e libeay32.dll na mesma pasta da sua aplicação
  14. consegui: 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}'; AResponseContent := TStringStream.Create(''); JsonToSend := TStringStream.Create(utf8Encode(Json)); 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'; IdHTTP1.Post('http://api.tudoentregue.com.br/v1/drivers', JsontoSend, AResponseContent); //IdHTTP1.ResponseCode = 200 Atualização de Registro. //IdHTTP1.ResponseCode = 201 Inclusão de Registro. //IdHTTP1.ResponseCode = 422 Erro de Validação. showmessage(AResponseContent.DataString); showmessage(IdHTTP1.ResponseCode.ToString); showmessage(IdHTTP1.ResponseText); Finally JsontoSend.Free(); End; de acordo com a api quando faz um post em /drivers o Response vem vazio mesmo o que valida a informação do post é o ResponseCode //IdHTTP1.ResponseCode = 200 Atualização de Registro. //IdHTTP1.ResponseCode = 201 Inclusão de Registro. //IdHTTP1.ResponseCode = 422 Erro de Validação. mas quando faz um get em /drivers ele responde os dados do motorista mas de uma boa lida na api pois os codigos do ResponseCode são muito importantes por exemplo quando faz um get em drivers: //IdHTTP1.ResponseCode = 200 Processado com Sucesso. *e vem os dados do motorista no response* //IdHTTP1.ResponseCode = 403 Motorista não Relacionado. *response vazio* //IdHTTP1.ResponseCode = 404 Motorista não Localizado. *response vazio*
  15. eu testei com o rest debuguer do delphi e funcionou. menu tools-> Rest Debuguer agora to sem tempo pra testar com o indy
  16. pra mim aparece: HTTP/1.1 422 Unprocessable Entity seu try except não esta deixando voce ver o erro
  17. voce pode testar dentro da propria api acessa: https://api.tudoentregue.com.br/Documentacao/index.html clique no botão Authorize do lado direito digite suas keys clique no botão Authorize dentro da tela que abriu feche essa tela. logo abaixo clique na primeira opção clique no botão "try it out" logo em baixo clique no botão execute vc vai ter uma resposta parecida com essa: curl -X POST "http://api.tudoentregue.com.br/v1/drivers" -H "accept: application/json" -H "AppKey: gfg" -H "RequesterKey: gdf" -H "content-type: application/json" -d "{ \"PhoneCountry\": \"+55\", \"PhoneNumber\": \"99999999999\", \"Name\": \"Motorista Exemplo\", \"IMEI\": \"999999999999999\", \"DeviceKey\": \"XXX99xXX-...\", \"DeviceId\": \"9FF9F9FFF99FFFFF9999F9FFF99999F9\", \"DeviceType\": \"MarcaModelo\", \"OSName\": \"Android\", \"OSVersion\": \"7.0\", \"Email\": \"[email protected]\", \"ZipCode\": \"99999999\", \"City\": \"Cidade do Exemplo.\", \"State\": \"Estado do Exemplo.\", \"Enable\": false}" então remova essa uses
  18. ?-não entendi mas se for isso Net.HttpClient, Net.URLClient, NetConsts;
  19. uses System.Net.HttpClient, System.Net.URLClient, System.NetConsts;
  20. eu preciso consumir um serviço do firebase: curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[[email protected]]","password":"[PASSWORD]","returnSecureToken":true}' com indy eu uso assim (funciona): Var lJsonStream: TStringStream; sUrlFull: String; AResponseContent: TStringStream; iStatusCode: Integer; sResponse: String; jsData: TJSONObject; Begin sUrlFull := 'https://identitytoolkit.googleapis.com/v1/accounts:' + 'signInWithPassword' + '?key=' + sAPIKEY; jsData.AddPair('email', '[email protected]'); jsData.AddPair('password', '1a2b3C'); jsData.AddPair('returnSecureToken', TJSONBool.Create(True)); lJsonStream := TStringStream.Create(UTF8Encode(jsData.ToJSON)); AResponseContent := TStringStream.Create(''); Try IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; Win632; x86; rv:47.0) Gecko/20100101 Firefox/47.0'; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Post(sUrlFull, lJsonStream, AResponseContent); iStatusCode := IdHTTP1.ResponseCode; sResponse := AResponseContent.DataString; Finally Begin FreeAndNil(lJsonStream); FreeAndNil(AResponseContent); End; End; com Net.HttpClient eu uso assim (funciona): Var lJsonStream: TStringStream; lIdHTTP: THTTPClient; sUrlFull: String; AResponseContent: TStringStream; iStatusCode: Integer; sResponse: String; jsData: TJSONObject; Begin sUrlFull := 'https://identitytoolkit.googleapis.com/v1/accounts:' + 'signInWithPassword' + '?key=' + sAPIKEY; jsData.AddPair('email', '[email protected]'); jsData.AddPair('password', '1a2b3C'); jsData.AddPair('returnSecureToken', TJSONBool.Create(True)); lJsonStream := TStringStream.Create(UTF8Encode(jsData.ToJSON)); AResponseContent := TStringStream.Create(''); lIdHTTP := THTTPClient.Create; Try lIdHTTP.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; Win632; x86; rv:47.0) Gecko/20100101 Firefox/47.0'; lIdHTTP.ContentType := 'application/json'; iStatusCode := lIdHTTP.Post(sUrlFull, lJsonStream, AResponseContent).StatusCode; sResponse := AResponseContent.DataString; Finally Begin FreeAndNil(lJsonStream); FreeAndNil(AResponseContent); FreeAndNil(lIdHTTP); End; End; a pergunta é como faço isso com Synapse já tentei de vários jeitos, já procurei no Google mas não consegui.
  21. tente assim: IdHTTP1.Request.Clear; IdHTTP1.Request.CharSet := 'UTF-8'; IdHTTP1.Request.Method := 'POST'; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.CustomHeaders.AddValue('AppKey','seuAppKey'); IdHTTP1.Request.CustomHeaders.AddValue('RequesterKey','seuRequesterKey'); ou assim: Var lJsonStream: TStringStream; lIdHTTP: THTTPClient; sUrlFull: String; AResponseContent: TStringStream; istatusCode:Integer; sResposta:String; Begin lJsonStream := TStringStream.Create(aJSON); AResponseContent := TStringStream.Create(''); lIdHTTP := THTTPClient.Create; Try lIdHTTP.CustomHeaders['AppKey'] := 'seuAppKey'; lIdHTTP.CustomHeaders['RequesterKey'] := 'seuRequesterKey'; lIdHTTP.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; Win632; x86; rv:47.0) Gecko/20100101 Firefox/47.0'; lIdHTTP.ContentType := 'application/json'; istatusCode := lIdHTTP.Post('https://api.tudoentregue.com.br/v1/drivers', lJsonStream, AResponseContent).StatusCode; sResposta := AResponseContent.DataString; Finally Begin FreeAndNil(lJsonStream); FreeAndNil(AResponseContent); FreeAndNil(lIdHTTP); End; End; mas fica difícil testar sem as keys.
  22. eu testei quando eu tinha um celular mais antigo e funcionou, com o novo android não testei, da uma pesquisada sobre Android Permission pode ser que te ajude. ou de uma aprofundada no assunto com base nos links que te passei no post anterior. sobre permissões: http://docwiki.embarcadero.com/RADStudio/Rio/en/Android_Permission_Model se vc usa delphi menor que 10.2: https://github.com/CarlosHe/AndroidPermission não sei se o seu problema é com permissão, mas um dos principais problemas que vejo é esse por causa da permissão de usar a câmera e salvar arquivos.
  23. da uma olhada nesses links: https://youtu.be/nsYvgmQlT58 https://github.com/tdevrocks/qrcode https://blog.andreamagni.eu/2017/06/scannermapp-a-qrbarcode-scanner-app-with-delphi-zxing-and-tframestand/
×
×
  • 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.