Ir para conteúdo
  • Cadastre-se

WashingtonFelipe

Membros
  • Total de ítens

    13
  • Registro em

  • Última visita

Tudo que WashingtonFelipe postou

  1. Olá, no boleto tem que gerar o pix copia e cola em cima da location. Abaixo comando que utilizei ACBrPixCD1.GerarQRCodeDinamico('sua location');
  2. Olá, Galera, realizei a implementação do metodo POST da Location do itau, segue abaixo o link
  3. No Banco do Itau, existe um EndPoint chamado /loc aonde o mesmo é gerado uma location vazia para que depois possa ser anexada junto com o arquivo de remessa(CNAB400) Abaixo o Link da documentação da API https://devportal.itau.com.br/nossas-apis/itau-ep9-gtw-pix-recebimentos-ext-v2#tag/Location Após algumas analises, verifiquei que no ACBrPIXCD não existia esta implementação, dito isso, realizei a implementação do mesmo, porem no momento apenas do metodo POST(/loc) para criação de location. A Implementação foi realizada na unit ACBrPIXPSPItau Abaixo o código implementado na unit do Itau function TACBrPSPItau.CriarLocation(ATypeLocation : String;out ARetJSON : String): Boolean; var Body, ep: String; RespostaHttp: AnsiString; ResultCode: Integer; AURL : String; js: TACBrJSONObject; begin if (UpperCase(ATypeLocation) = '') or (UpperCase(ATypeLocation) <> 'COB') and (UpperCase(ATypeLocation) <> 'COBV') then raise EACBrPSPException.CreateFmt( ACBrStr(sErroPropriedadeNaoDefinida), ['ATypeLocation']); if (NivelLog > 1) then RegistrarLog('CriarLocation'+ATypeLocation); Body := '{"tipoCob": "'+ATypeLocation+'"}'; Clear; PrepararHTTP; ep := ChttpMethodPOST; ConfigurarBody(ep, cItauPathAPIPixLocation, Body); WriteStrToStream(Http.Document, Body); Http.MimeType := CContentTypeApplicationJSon; ConfigurarAutenticacao(ep, cItauPathAPIPixLocation); if (ACBrPixCD.Ambiente = ambProducao) then AURL := cItauURLProducao + cItauPathAPIPix + cItauPathAPIPixLocation else begin VerificarAutenticacao; AURL := cItauURLSandbox + cItauPathAPIPix + cItauPathAPIPixLocation; end; TransmitirHttp(ChttpMethodPOST, AURL, ResultCode, RespostaHttp); Result := (ResultCode = HTTP_CREATED); if (ResultCode = HTTP_CREATED) then begin ARetJSON := String(RespostaHttp); js := TACBrJSONObject.Parse(RespostaHttp); try RegistrarLog('id - '+js.AsString['id']); RegistrarLog('location - '+js.AsString['location']); RegistrarLog('tipoCob - '+js.AsString['tipoCob']); RegistrarLog('criacao - '+js.AsString['criacao']); finally js.Free; end; end else DispararExcecao(EACBrPixHttpException.CreateFmt(sErroHttp, [Http.ResultCode, ChttpMethodPOST, AURL])); end; Abaixo como realizar a chamada da implementação realizada(Para método cobv). var Ok : Boolean; AJSON : String; js: TACBrJSONObject; begin Ok := ACBrPSPItau1.CriarLocation('cobv',AJSON); if OK then begin mmLocationItau.Lines.Add(''); mmLocationItau.Lines.Add('-----------------Criação da Location cobv---------------------'); js := TACBrJSONObject.Parse(AJSON); try mmLocationItau.Lines.Add('id - '+js.AsString['id']); mmLocationItau.Lines.Add('location - '+js.AsString['location']); mmLocationItau.Lines.Add('tipoCob - '+js.AsString['tipoCob']); mmLocationItau.Lines.Add('criacao - '+js.AsString['criacao']); finally js.Free; end; mmLocationItau.Lines.Add('-----------------Fim da Criação da Location cobv---------------------'); end; Abaixo como realizar a chamada da implementação realizada(Para método cob). var Ok : Boolean; AJSON : String; js: TACBrJSONObject; begin Ok := ACBrPSPItau1.CriarLocation('cob',AJSON); if OK then begin mmLocationItau.Lines.Add(''); mmLocationItau.Lines.Add('-----------------Criação da Location cob---------------------'); js := TACBrJSONObject.Parse(AJSON); try mmLocationItau.Lines.Add('id - '+js.AsString['id']); mmLocationItau.Lines.Add('location - '+js.AsString['location']); mmLocationItau.Lines.Add('tipoCob - '+js.AsString['tipoCob']); mmLocationItau.Lines.Add('criacao - '+js.AsString['criacao']); finally js.Free; end; mmLocationItau.Lines.Add('-----------------Fim da Criação da Location cob---------------------'); end; Em Anexo tem a unit do Itau e do projeto PIXCDTeste, aonde implementei uma aba nova para criação da location. ACBrPIXPSPItau.pasFrPrincipal.dfmFrPrincipal.pas OBS: Todos os testes acima, junto com a implementação já foram realizados em Produção. Qualquer duvida estou a disposição, obrigado.
  4. Boa tarde, @Vinicius Pereira Eu criei 2 tipos de relatórios utilizando o RLReport e o QuickRep. No caso coloquei um image de cada componente e utilizei o seguinte código no beforeprint PintarQRCode(oQrCode, imgQRCode1.Picture.Bitmap, qrUTF8BOM); PintarQRCode(oQrCode, imgQRCode.Picture.Bitmap, qrUTF8BOM); Aonde tem "oQrCode" é o pix copia e cola.
  5. Bom dia, Apenas um complemento sobre o PIX (Santander) Em algumas maquinas tive que colocar 2 dll, pois não conseguia Gerar o Token. Estava retornando erro 500 As dll que coloquei foram as libcrypto-1_1.dll e libssl-1_1.dll Após colocar as dll na pasta aonde executa o sistema a cobrança foi gerada com sucesso. Abaixo o log do erro que tinha ocorrido. 02/09/22 11:01:00:914 - Atribuindo PSP: TACBrPSPSantander, Nome: ACBrPSPSantander1 02/09/22 11:01:00:914 - Atribuindo PSP: Nil 02/09/22 11:01:00:914 - Atribuindo PSP: TACBrPSPSantander, Nome: ACBrPSPSantander1 02/09/22 11:01:00:914 - CriarCobrancaImediata( C0C823B10C9349A28FC7F93BDBD262D2 ) 02/09/22 11:01:00:914 - PrepararHTTP 02/09/22 11:01:00:914 - Autenticar 02/09/22 11:01:00:914 - LimparHTTP 02/09/22 11:01:00:914 - TransmitirHttp( POST, https://trust-pix.santander.com.br/oauth/token?grant_type=client_credentials ) 02/09/22 11:01:00:914 - ConfigurarHTTP 02/09/22 11:01:00:914 - ConfigurarProxy 02/09/22 11:01:00:914 - ConfigurarTimeOut 02/09/22 11:01:00:914 - ConfigurarHeaders( POST, https://trust-pix.santander.com.br/oauth/token?grant_type=client_credentials ) 02/09/22 11:01:00:914 - Req.Headers: Accept-Encoding: gzip, compress, deflate 02/09/22 11:01:00:914 - Req.Body: client_id=Ga0MdcJh2woZPfiJFhQuJwSs9tFq7z7A&client_secret=XRhiDEwcpCp4GCvr 02/09/22 11:01:03:254 - ResultCode: 500 - 02/09/22 11:01:03:254 - Resp.Headers: POST /oauth/token?grant_type=client_credentials HTTP/1.0 Host: trust-pix.santander.com.br Keep-Alive: 300 Connection: keep-alive User-Agent: Mozilla/4.0 (compatible; Synapse) Content-Type: application/x-www-form-urlencoded Content-Length: 73 Accept-Encoding: gzip, compress, deflate 02/09/22 11:01:03:254 - Resp.Body: 02/09/22 11:01:03:254 - EACBrPixHttpException: Erro HTTP: 500, Metodo: POST, URL: https://trust-pix.santander.com.br/oauth/token?grant_type=client_credentials 02/09/22 11:01:08:263 - ConsultarCobrancaImediata( C0C823B10C9349A28FC7F93BDBD262D2, 0 ) 02/09/22 11:01:08:263 - PrepararHTTP 02/09/22 11:01:08:263 - Autenticar 02/09/22 11:01:08:263 - LimparHTTP 02/09/22 11:01:08:263 - TransmitirHttp( POST, https://trust-pix.santander.com.br/oauth/token?grant_type=client_credentials ) 02/09/22 11:01:08:263 - ConfigurarHTTP 02/09/22 11:01:08:263 - ConfigurarProxy 02/09/22 11:01:08:263 - ConfigurarTimeOut 02/09/22 11:01:08:263 - ConfigurarHeaders( POST, https://trust-pix.santander.com.br/oauth/token?grant_type=client_credentials ) 02/09/22 11:01:08:263 - Req.Headers: Accept-Encoding: gzip, compress, deflate 02/09/22 11:01:08:263 - Req.Body: client_id=Ga0MdcJh2woZPfiJFhQuJwSs9tFq7z7A&client_secret=XRhiDEwcpCp4GCvr 02/09/22 11:01:08:310 - ResultCode: 500 - 02/09/22 11:01:08:310 - Resp.Headers: POST /oauth/token?grant_type=client_credentials HTTP/1.0 Host: trust-pix.santander.com.br Keep-Alive: 300 Connection: keep-alive User-Agent: Mozilla/4.0 (compatible; Synapse) Content-Type: application/x-www-form-urlencoded Content-Length: 73 Accept-Encoding: gzip, compress, deflate
  6. Boa tarde, Valeu @EliasCesar @Vinicius Pereira Pega as alterações que teve e da um retorno se conseguiu resolver o seu problema tambem.
  7. Boa tarde, O Erro retornando 0 é por conta do timeout, que no meu caso estava 300, por padrão deixei 9000(Que é o padrão do ACbr), pois as vezes a requisição pode demorar um pouco e caso estiver 300 poderá retornar código 0. OBS: Neste caso a cobrança é criada. Para criar cobranças no Santander é obrigatório preencher o TXID. Toda nova cobrança deverá ser gerado um novo txid. Cobrança Criada. Consulta da cobrança, após o pagamento(Em Produção) Solicitando devolução do PIX. Consultando Devolução. OBS: Até o presente momento o santander não tem cancelamento de cobranças geradas.
  8. Testei com o demo, porem ocorre o erro abaixo. pelo postman da erro 500 vou estudar mais um pouco aqui e volto a informar. log.txt
  9. Bom dia, Segue a unit alterada e o Log. Estou anexando o Log antes da Alteração e o Log do erro atual. O Erro que está ocorrendo agora o mesmo ocorre no Postman, estou em contato com o suporte do santander para tentar resolve-lo. ACBrPIXPSPSantander.pas Log Erro Atual.txt Log antes da Alteração.txt
  10. Boa noite @Vinicius Pereira Consegui resolver 1 dos problemas, porem agora estou tendo o retorno abaixo: { "type": "https://pix.bcb.gov.br/api/v2/error/NaoEncontrado", "title": "Não Encontrado", "status": 404, "detail": "Entidade não encontrada." } O Erro anterior era por conta que não estava passando o certificado digital que foi cadastrado no momento de cadastrar a API. Consegui resolver implementando o método abaixo na unit ACBrPIXPSPSantander, após isso compilei o ACBr novamente para criar as propriedades e conseguir manipular. Feito isso, foi possível gerar o Token, porem estou com problema agora na criação da cobrança, entrei em contato com o suporte do Santander, porem até agora nada. Caso tenha algum retorno irei reportar o andamento da implantação. Até o momento, essas foram as únicas mudanças necessárias @EliasCesar
  11. Boa noite @Vinicius Pereira Conseguiu resolver o seu problema ? Pois estou com a mesmo problema. Caso sim, poderia compartilhar qual foi a solução ?
  12. Boa noite, Finalizar tópico, estava revendo o processo e vi que tinha uma validação, no caso só leva a informação caso o COD_MOD, seja 66. Obrigado.
  13. Boa noite, Ao Gerar o bloco C500 com as novas alterações que houve a coluna FIN_DOCe não está sendo gerando, mesmo passando a informação para o componente. Abaixo um exemplo básico de como está sendo realizado. with RegistroC500New do begin FIN_DOCe := fedcNormal; end; Ao Analisar o processo por completo, verifiquei que não está implementado o processo na unit "ACBrEFDBloco_C_Class", em procedure TBloco_C.WriteRegistroC500(RegC001: TRegistroC001); Existe uma variável vFin_DOCe do tipo string, porem ela não está recebendo nenhum valor. Após alimentar a variável a informação começou a sair no arquivo *.txt Antes da Alteração: Após a alteração: OBS: O ACBr foi atualizado e instalado na data de hoje (03/02/2020). Realizei este processo, pois não consegui fazer com que a informação fosse alimentada, caso exista outra maneira de alimentar a coluna do bloco, poderiam me auxiliar ?
×
×
  • 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...