fabio alberto Postado 12 Setembro Postado 12 Setembro (editado) Estou tentando integrar o PSP Ailos, porém no exemplo do PixCD não obtenho retorno ao chamar a api, tentei dar f7, mas o response parece estar em branco Já no postman, consegui inserir o crt, key e root também e me retornou o token no endpoint de auth, ai precisaria seguir usando o token para criar o pagamento, mas eu gostaria de conseguir fazer isso pelo exemplo do acbr, já que os métodos já estão prontos, poupando tempo. Segue na foto abaixo como configurei o componente do acbr Gerei os arquivos conforme instruído na documentação do ailos utilizando meu certificado .pfx, que é o certificado do cnpj relacionado ao client id e secret que o ailous me passou Alguém saberia me dizer o que pode estar faltando ou que precisa ser corrigido para funcionar? Editado 12 Setembro por fabio alberto coloquei uma imagem que não devia
fabio alberto Postado 12 Setembro Autor Postado 12 Setembro Pra funcionar no postman inseri certificado, key e root nas configurações dessa forma
fabio alberto Postado 13 Setembro Autor Postado 13 Setembro Coloquei o nível de log no mais alto Indica esse Sock.LastError
Moderadores Juliomar Marchetti Postado 14 Setembro Moderadores Postado 14 Setembro creio que seja só configuração dos dados errados. tente inverter Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
fabio alberto Postado 14 Setembro Autor Postado 14 Setembro Bom dia, @Juliomar Marchetti Inverter o que exatamente? Tentei inverter os certificados ali nos campos de configuração, mas não mudou nada, não sei se foi isso que você quis dizer...
Moderadores Juliomar Marchetti Postado 16 Setembro Moderadores Postado 16 Setembro Sim isso. então entra em contato com o psp pra lhe ajudarem com as credenciais pois parece ela Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
fabio alberto Postado 16 Setembro Autor Postado 16 Setembro Não parece ser problema com as credenciais, pois no Postman o POST no endpoint de auth funciona normal
fabio alberto Postado 16 Setembro Autor Postado 16 Setembro Criei um form aqui para fazer o teste e deu certo, mas no exemplo do acbr ainda não consegui fazer funcionar: Imagino que a grande diferença aqui foi que usei essas dlls na pasta do executavel, já que foram as únicas que funcionaram com o TidHttp sem dar o "could not load ssl library": https://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.0.2.21/x86/ Segue abaixo a rotina que usei pra fazer o post, achei esse exemplo no forum e adaptei pra conseguir por minhas credenciais e certificados: var HTTPClient: TIdHTTP; SSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; RequestBody: TStringStream; Response: TStringStream; begin Memo1.Lines.Clear; HTTPClient := TIdHTTP.Create(nil); HTTPClient.Request.Clear; HTTPClient.Request.CharSet := 'utf-8'; HTTPClient.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)'; HTTPClient.Request.ContentType := 'application/x-www-form-urlencoded'; HTTPClient.Request.CustomHeaders.Clear; HTTPClient.Request.CustomHeaders.FoldLines := false; HTTPClient.HandleRedirects := True; HTTPClient.HTTPOptions := [hoKeepOrigProtocol, hoInProcessAuth]; RequestBody := TStringStream.Create; Response := TStringStream.Create; RequestBody.WriteString('CLIENT_ID=' + edtClientId.Text + '&' + 'CLIENT_SECRET=' + edtClientSecret.Text + '&' + 'SCOPE=cob.read+cob.write+pix.read+pix.write'); RequestBody.Position := 0; SSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); try // Set up SSL IO Handler with certificate SSLIOHandler.SSLOptions.Mode := sslmClient; SSLIOHandler.SSLOptions.VerifyMode := []; SSLIOHandler.SSLOptions.VerifyDepth := 0; SSLIOHandler.SSLOptions.CertFile := 'certificado.crt'; SSLIOHandler.SSLOptions.KeyFile := 'chave_semsenha.key'; SSLIOHandler.SSLOptions.RootCertFile := 'root.crt'; SSLIOHandler.SSLOptions.SSLVersions := [sslvTLSv1_2]; // Set up HTTP client with SSL IO Handler HTTPClient.IOHandler := SSLIOHandler; HTTPClient.Post(edtURL.Text, RequestBody, Response); Memo1.Lines.Add(Response.DataString); finally HTTPClient.Free; SSLIOHandler.Free; RequestBody.Free; Response.Free; end; end; Talvez o problema sejam as dlls que estou usando no exemplo do ACBR, só que as dlls que estou usando no exemplo são as recomendadas pelo pessoal aqui do forum: https://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.1.1.10/X86/ Alguém tem alguma dica do que eu possa fazer pra funcionar no exemplo do acbr também?
Moderadores Juliomar Marchetti Postado 16 Setembro Moderadores Postado 16 Setembro 3 horas atrás, fabio alberto disse: Alguém tem alguma dica do que eu possa fazer pra funcionar no exemplo do acbr também? mas porque no exemplo se tu já fez sua aplicação rodar ali? tu vai colocar rodar em sua aplicação certo? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
fabio alberto Postado 16 Setembro Autor Postado 16 Setembro Sim, mas a ideia é homologar outros PSPs na sequência e aproveitar o tratamento feito no exemplo do ACBr que já está pronto, apenas o adaptando para minha aplicação. Além disso, o exemplo já tem também pronto os métodos para criar a cobrança, pintar o QRCode e consultar, tudo pelo componente do PIXCD. Então se eu conseguir usar o componente do PIXCD e dos PSPs do ACBR facilitaria bastante pra mim, até porque também vou precisar fazer integração de outros PSPs em seguida, que se não me engano são Sicredi e BB. E utilizando o componente, consigo fazer a configuração desses PSPs toda no componente e já sair usando. É claro que no pior do casos se realmente não tiver como fazer funcionar, vou escrever os métodos do zero usando o TIdHttp igual no exemplo ali que mandei.
Moderadores Juliomar Marchetti Postado 16 Setembro Moderadores Postado 16 Setembro há tá achei que tivesse usado o componente em uma aplicação normal então é quase certo que tu preencheu dados no exemplo e está levando coisas que não precisaria já tive caso de pessoas que estava passando tanto o pfx arquivo quanto o caminho(é um exemplo) e dai não funcionava pois o componente tinha as duas informações ou dados errados. Notei que no log não mostra o root.crt sendo passado só os dois no exemplo. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
fabio alberto Postado 16 Setembro Autor Postado 16 Setembro (editado) Realmente isso tá um pouco estranho, pois parece estar colocando o root no body na verdade. No exemplo do tidhttp que eu tinha achado, vai os 3 certificados no TIdSSLIOHandlerSocketOpenSSL que está ligado no httclient e no body da requisição apenas o client id, secret e scope. Mas aí não sei se é uma particularidade desse componente de http, porque já veio assim no exemplo quando baixei os fontes. Editado 16 Setembro por fabio alberto
fabio alberto Postado 16 Setembro Autor Postado 16 Setembro Tô tentando adicionar essa linha na unit ACBrPIXCD: http.Sock.SSL.CertCAFile := 'E:\root.crt'; Dei build no exemplo, mas ele ainda pula a linha durante a compilação, como posso fazer para que considere a linha que acabei de adicionar?
Moderadores Juliomar Marchetti Postado 16 Setembro Moderadores Postado 16 Setembro ou fecha o delphi e roda o instalador ou adiciona o path mas dai vai ter arquivo pra todo o lado do acbr compilado Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
fabio alberto Postado 16 Setembro Autor Postado 16 Setembro (editado) Deu certo \o/ Vocês conseguem alterar isso no svn pra mim? Precisaria só pegar o arquivo root lá de onde configura o psp e atribuir ao Http.Sock.SSL.CertCAFile, na mesma pegada que já faz pro certificado e key. Claro que não precisa ser exatamente onde coloquei ali, caso seja necessário imagino que poderia ter um if ali de PSPAilos, se for uma particularidade desse PSP por exemplo. Editado 16 Setembro por fabio alberto
Moderadores Juliomar Marchetti Postado 16 Setembro Moderadores Postado 16 Setembro Deixa levantar a bola para o @EliasCesar Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Consultores Solution EliasCesar Postado 17 Setembro Consultores Solution Postado 17 Setembro Olá @fabio alberto Acabei de enviar ao SVN uma alteração um pouco diferente dessa, mas que deve corrigir o problema. Atualize seus fontes e faça um teste por favor. Disponível no SVN, rev: 35289. Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC
fabio alberto Postado 17 Setembro Autor Postado 17 Setembro Deu certo Obrigado @Juliomar Marchetti e @EliasCesar 1
Moderadores Juliomar Marchetti Postado 17 Setembro Moderadores Postado 17 Setembro Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts