Histórico de mensagens sobre java em pix

EXIBINDO CONVERSAS RECENTES:

Texto: java
Canal: pix
Avatar discord do usuario nelson_56708

nelson_56708

Ver Respostas

Olá @gabriel_efi , tudo bem?
Preciso de uma ajuda com a atualização do SDK do PIX, fiz a atualização no meu projeto e agora estou recebendo o erro "PixCreateCharge - Unexpected end of file from server", não encontrei nada falando a respeito.

Meu projeto está em JAVA com Spring Boot e versão 1.8 do java.
Algum de vcs pegou essa situação?

O erro acontece nesse trecho:
int responseCode = client.getResponseCode();
package br.com.efi.efisdk;

a

Avatar discord do usuario flaviolenz

flaviolenz

javax.net.ssl.SSLProtocolException: Received close_notify during handshake

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @renato_95656 ! A nossa sdk ja faz a autenticação de forma automaticamente. Nesses exemplos você não precisa se preocupar com esse token. E no exemplo de criar cobrança sem informar o txid, seria omitir esse parâmetro e o método também altera, informando o txid é PUT e sem o txid é POST . Temos um exemplo ja implementado também - https://github.com/efipay/sdk-java-examples-apis-efi/blob/main/src/main/java/br/com/efi/pix/cob/json/PixCreateImmediateCharge.java

Avatar discord do usuario renato_95656

renato_95656

Boa tarde, estou utilizando a java sdk. Olhando o exemplo vi que não tem o campo para adicionar o token que recupero realizando a requisição no endpoint oauth/token, devo adicionar algo como:
options.put("Authorization", "Bearer"+"token_recebido");
outra duvida é em relação ao pix sem txid devo apenas omitir o params que esta destacado na imagem?
Grato desde já!
imagem enviada na mensagem pelo usuario renato_95656

Avatar discord do usuario .viniciusc

.viniciusc

java
InputStreamReader reader = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(reader);

String response;
StringBuilder responseBuilder = new StringBuilder();
while ((response = br.readLine()) != null) {
responseBuilder.append(response);
}

ObjectMapper mapper = new ObjectMapper();
token = mapper.readValue(responseBuilder.toString(), Token.class);

conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

Avatar discord do usuario .viniciusc

.viniciusc

java
public static Token authorizeToken(String client_id, String client_secret, byte[] certificateBytes) {
Token token = null;
String basicAuth;
try {
System.out.println(certificateBytes.length);
basicAuth = Base64.getEncoder().encodeToString((client_id + ':' + client_secret).getBytes());

File tempFile = File.createTempFile("certificate", ".p12");
tempFile.deleteOnExit();

try (FileOutputStream fos = new FileOutputStream(tempFile)) {
fos.write(certificateBytes);
}

System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", tempFile.getAbsolutePath());

SSLSocketFactory sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

URL url = new URL("https://api-pix-h.gerencianet.com.br/oauth/token");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Basic " + basicAuth);
conn.setSSLSocketFactory(sslSocketFactory);
String input = "{\"grant_type\": \"client_credentials\"}";

OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();

Avatar discord do usuario .viniciusc

.viniciusc

Ver Respostas

Bom dia! Alguém aqui já conseguiu implementar a API PIX da Efí utilizando o Java + Spring Boot com algum serviço de Cloud?

Já fazem alguns meses que tento implementar a API mas sempre tenho problemas de instabilidade, onde, depois de gerar um token de acesso, a aplicação spring continua funcionando normalmente e depois de 10 minutos começa a ter problema de conexão com a base de dados.

No caso do serviço de cloud estou usando a AWS e o RDS com o MySQL.

Falo da base de dados mas utilizei dados localmente (client_id, secret e certificado .p12 localmente e a requisição de teste foi nenhuma conexão com o banco) e mesmo assim da erro de conexão com a base de dados.

Já fazem vários meses que estou tento esse problema e gostaria de saber se alguém ja implementou a API nessas condições ou se alguém já teve algum problema parecido.

Se alguém puder respondei ficarei profundamente grato!

O trecho de código em questão:

Avatar discord do usuario gabrielwar

gabrielwar

java
@Slf4j
public class X509CertificateFilter extends OncePerRequestFilter {

private final X509Certificate apiCert;

public X509CertificateFilter(X509Certificate apiCert) {
this.apiCert = apiCert;
}

@Override
protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull FilterChain filterChain) throws ServletException, IOException {
final X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
if (certs != null) {
log.info("Found {} certificates", certs.length);
for (X509Certificate cert : certs) {
if (cert.equals(apiCert)) {
filterChain.doFilter(request, response);
}
}
}
log.error("Forbidden at {} access from: {}", request.getRequestURI(), request.getRemoteAddr());
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
}

}

Avatar discord do usuario stanleyjones_31137

stanleyjones_31137

Boa tarde. Tenho um aplicativo web que atende uma escola. Esse aplicativo (feito em php e java script) gera boletos para que a escola receba as mensalidades dos clientes dela. Eu preciso agora inserir nesses boletos a opção de pagamento via pix. Usando a API pix da Efi eu vou poder fazer isso, gerar qrcode pix para ser impresso no boleto do cliente da escola para que este possa fazer o pagamento do mesmo via pix?

Avatar discord do usuario marcosdahora_00681

marcosdahora_00681

Ver Respostas

Então ñ é seguro solicitar o pagamento via app aonde o usuário apenas scanea ou copia os dados do pix, baseado em uma sdk em java?

Avatar discord do usuario martheuss777

martheuss777

sei fazer isso só em node.js, javascript html n manjo tanto

Avatar discord do usuario jaldesigner

jaldesigner

Ver Respostas

Boa tarde!
Estou tentando desde ontem uma coisa que deveria ser simples, porém estou com dificuldades de achar sobre.
O app é para android usando a linguágem JAVA.
Eu só quero gerar um QRcode onde o cliente possa apontar o celular com seu app do banco e pagar. Alguém pode me ajudar?

Avatar discord do usuario jaldesigner

jaldesigner

Ver Respostas

@rubenskuhl no caso, por exemplo, eu teria que implantar o código no arquivo ActivityMain.java certo?
Esse seria o Back-end certo?
(Sou iniciante e não conheço muito bem os termos)

Avatar discord do usuario jaldesigner

jaldesigner

Ver Respostas

Olá!
Eu estou criando um app para android usando a linguagem JAVA e quero gerar um QRcode e colocar um botão com copia e cola para efetuar o pagamento via PIX, porém não é muito claro para mim a documentação de implementação do código, poderiam me ajudar ou me mandar um artigo que possa ver como fazer?

Avatar discord do usuario .viniciusc

.viniciusc

java
public static Cob createCharge(String token, String payload) {
Cob cob = null;
try {
Generex txid = new Generex("[a-zA-Z0-9]{26,35}");
URL url = new URL("https://api-pix-h.gerencianet.com.br/v2/cob/" + txid.random());
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + token);

OutputStream os = conn.getOutputStream(); // O erro do connection reset ocorre aqui
os.write(payload.getBytes());
os.flush();

int responseCode = conn.getResponseCode();

StringBuilder responseBuilder = new StringBuilder();
BufferedReader br;

if (responseCode >= 400) {
br = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
} else {
br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
}

String response;
while ((response = br.readLine()) != null) {
responseBuilder.append(response);
}

//System.out.println("Código de resposta HTTP: " + responseCode);
//System.out.println("Resposta do servidor: " + responseBuilder);

JsonMapper mapper = JsonMapper
.builder()
.configure(MapperFeature.USE_ANNOTATIONS, false)
.build();

cob = mapper.readValue(responseBuilder.toString(), Cob.class);

conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return (cob != null) ? cob : new Cob();
}

Avatar discord do usuario .viniciusc

.viniciusc

Boa tarde pessoal! Sou novo aqui no discord da Efí, eu estou passando por um problema quando eu gero uma cobrança PIX (Estou utilizando o Java 17). O qual me retorna a exceção "java.net.SocketException: Connection reset".

O mais intrigante é que quando eu faço a cobrança em um ambiente de teste normal, a cobrança é realizada com sucesso.
Porém quando eu faço a cobrança dentro do controlador do Spring Boot ele me retorna esse erro. Eu não faço a menor ideia de como resolver.

java
@PostMapping("/gn/charge")
ResponseEntity createCharge(
@RequestHeader(value = "access-token") String accessToken,
@RequestBody Cob cob) {
if (accessToken != null) {
return ResponseEntity
.status(HttpStatus.CREATED)
.body(Charge.createCharge(accessToken, cob.toJson()));
}
return ResponseEntity
.status(HttpStatus.UNAUTHORIZED)
.body(ApiWarning.sendMessage(401, "Requisição não autorizada")); //tratar resposta
}

Avatar discord do usuario mauroalbrecht

mauroalbrecht

Bom dia, a sdk de exemplo do java tem split de pagamento com pix ?

Avatar discord do usuario ricardo_oliveira_souza

ricardo_oliveira_souza

tem algum exemplo mais completo em java?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @toninhomurakami! Tudo joia?
Temos um vídeo que mostra como você pode fazer para gerar cobranças Pix através da nossa SDK de Java: https://www.youtube.com/watch?v=Mv3LPoOc8mc
Caso fique com alguma duvida, pode nos acionar

Avatar discord do usuario toninhomurakami

toninhomurakami

Ver Respostas

Lang Java