Ir para conteúdo
  • Cadastre-se

datilas

Moderadores
  • Total de ítens

    688
  • Registro em

  • Última visita

  • Days Won

    2

Tudo que datilas postou

  1. 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
  2. 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
  3. 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*
  4. eu testei com o rest debuguer do delphi e funcionou. menu tools-> Rest Debuguer agora to sem tempo pra testar com o indy
  5. pra mim aparece: HTTP/1.1 422 Unprocessable Entity seu try except não esta deixando voce ver o erro
  6. 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
  7. ?-não entendi mas se for isso Net.HttpClient, Net.URLClient, NetConsts;
  8. uses System.Net.HttpClient, System.Net.URLClient, System.NetConsts;
  9. 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.
  10. 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.
  11. 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.
  12. 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/
  13. tente usar: Memo1.Text := RESTResponse1.JSONText;
  14. com acbr não consegui no android, mas consegui seguindo esse tutorial: http://portal.tdevrocks.com.br/2017/01/28/impressao-em-mini-impressora-bluetooth/
  15. a unica coisa parecida com isso que conheço é o remoteapp do windows server
  16. Resposta: 1- Exatamente isso o "1" seria o digito verificador ele pode ser fixo caso ele não seja valido o ACBrValidador vai gerar um digito valido pra vc 2- O ACBrInStore é um componente para ler e decodificar codigo de barras de balanças da uma olha da nos demos: Exemplos\ACBrDiversos\ACBrInStore
  17. estou respondendo aqui uma pergunta do usuario @doidopb do link pois não sou usario sac não posso responder la. no caso do produto ID = 150 TOTAL = 10,50 a barra seria "201500001050" mas como só tem 12 caracteres vamos adicionar o "1" no final ficando assim "2015000010501" agora vai o codigo: Var sMinhaBarra: String; Begin sMinhaBarra := '2015000010501'; ACBrValidador1.TipoDocto := docGTIN; ACBrValidador1.ExibeDigitoCorreto := True; ACBrValidador1.Documento := sMinhaBarra; If Not ACBrValidador1.Validar Then sMinhaBarra := Copy(sMinhaBarra, 1, 12) + ACBrValidador1.DigitoCalculado; End; assim vc pode gerar seu próprio código de barras matematicamente valido e aceito para ser lido com "ACBrInStore1" que é ótimo para essa situação
  18. https://developers.mercadolivre.com.br/pt_br/categorizacao-de-produtos https://developers-forum.mercadolibre.com/topic/1675-delphi-7-token-autenticação/ esses links podem te ajudar. eu fiz essa integração uma vez, tive muito trabalho por falta de material mas hoje em dia a documentação deles ta muito boa
  19. tente isso pois a forma de autenticação é a mesma. eu consegui usando esse link (tambem uso woocommerce assim) : https://developers-forum.mercadolibre.com/topic/1675-delphi-7-token-autenticação/ vc ja fez o cadastro para poder utilizar a api do ifood. é necessário enviar um email com seus dados para ter acesso a api fora isso é só seguir o link acima
  20. a paygo não devolve "NFCeSAT.CNPJCredenciadora" vc vai ter obter essa informação de outra forma. e aqui ".NFCeSAT.Autorizacao" altera para ".CodigoAutorizacaoTransacao" leia aqui: mas vc tambem pode usar o BIN do cartão para retornar a bandeira, existe alguns exemplos na internet
  21. datilas

    data

    Procedure TForm1.Button1Click(Sender: TObject); Const sDataRecebida = '2019-04-20'; Begin Edit1.Text := Copy(sDataRecebida, 9, 2) + '.' + Copy(sDataRecebida, 6, 2) + '.' + Copy(sDataRecebida, 1, 4); End; resultado 20.04.2019 se quiser troque o "." por "/" para ficar 20/04/2019 depois use SeuDataSet.FieldByName('seucampo').AsDateTime := StrToDate(Edit1.Text);
  22. exemplo de uso: Procedure TForm1.bCDPClick(Sender: TObject); Var sResposta: String; Begin If ACBrTEFD1.CDP('F', sResposta) Then sDigitado := sResposta; End;
  23. datilas

    CDP PayGo

    acabei de incluir a captura de dados usando paygo. gostaria de saber se é possível incluir no acbr. caso não esteja no padrão acbr por favor me informar para que eu possa alterar, ou eu vou ter que fazer a alteração toda vez que eu atualizar o acbr no manual esta assim 006-000 Entidade Cliente a1 Forma de identificação do Cliente: F: CPF J: CNPJ X: Outro identificador, gerenciado pelo estabelecimento. testei apenas com a PayGo no momento não posso testar com outros GP. ACBrTEFD.zip
  24. Const sMeuValor = '2019-04-02T07:30:37'; Begin Edit1.Text := copy(sMeuValor, 1, Pos('T', sMeuValor) - 1); Edit2.Text := copy(sMeuValor, Pos('T', sMeuValor) + 1, length(sMeuValor)); End;
×
×
  • 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...