Histórico de mensagens sobre input em pix

EXIBINDO CONVERSAS RECENTES:

Texto: input
Canal: pix
Avatar discord do usuario darthsouza

darthsouza

Ver Respostas

Filtrar inputs é o mínimo, e ter sistema que não foi invadido não é argumento válido

Avatar discord do usuario brunodelara

brunodelara

Ver Respostas

mesma coisa q dizer q filtrar inputs é muito chato, e tem outro sistema q nunca invadiram

Avatar discord do usuario rubenskuhl

rubenskuhl

public String padLeftZeros(String inputString, int length) {
if (inputString.length() >= length) {
return inputString;
}
StringBuilder sb = new StringBuilder();
while (sb.length() < length - inputString.length()) {
sb.append('0');
}
sb.append(inputString);

return sb.toString();
}

Avatar discord do usuario caiopedreira

caiopedreira

<@!818290769923670038>
eu faria assim:
$rawCallback = file_get_contents('php://input');
file_put_contents("output.txt", "$rawCallback");
// pra percorrer o json depois que salvar:
$callbackArr = json_decode($rawCallback, true);
exit();
?>

Avatar discord do usuario lucapwn

lucapwn

Ver Respostas

Olá, boa noite! Tudo bem? 😀
Estou tentando criar meu próprio webhook em PHP (no meu servidor dedicado) para receber as notificações de pagamentos realizados via Pix, e há algum problema, pois não recebo as notificações de pagamentos. Segue o código em PHP abaixo:

header("Content-Type: application/json");
$request = file_get_contents("php://input");
file_put_contents("webhook.json", print_r($request, true));
print_r($request);
?>

Recebo a notificação de configuração do link do webhook normalmente:

{
"webhookUrl": "https://exemplo-pix/webhook"
}

Mas não recebo a notificação quando realizo o pagamento:

{
"pix": [
{
"endToEndId": "E1803615022211340s08793XPJ",
"txid": "fc9a43k6ff384ryP5f41719",
"chave": "2c3c7441-b91e-4982-3c25-6105581e18ae",
"valor": "0.01",
"horario": "2020-12-21T13:40:34.000Z",
"infoPagador": "pagando o pix"
}
]
}

Tentei utilizar o exemplo de configuração de servidor em Python desenvolvido em Flask (https://dev.gerencianet.com.br/v1/docs/api-pix#section-exemplos-de-uma-configura-o-de-servidor-), mas não consegui seguir esse exemplo. ☹️

Já testei em sites de terceiros (como o https://webhook.site), e funciona normalmente (recebi a notificação do pagamento).

O meu servidor possui certificado SSL e a versão do TLS é 1.2.

Preciso receber essas notificações e armazená-las em algum lugar para verificar se o pagamento foi realizado. Vocês podem me ajudar? Irei ficar muito grato! Muito obrigado! 😀

Avatar discord do usuario joelemanoel

joelemanoel

Ver Respostas

Tente:

php
DB::insert('INSERT INTO ateste (topic) VALUES (?)',[json_encode(file_get_contents("php://input"), true)]);

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

Está apontando certo.

Veja o código:

File file = new File(CERTIFICADO);

System.out.println("certificado: " + file.isFile() );
System.out.println("certificado: " + file.getAbsolutePath() );

String rota = URL_PADRAO + "/oauth/token";

String basicAuth = Base64.getEncoder().encodeToString(((CLENTE_ID + ':' + CLIENTE_SECRET).getBytes()));
System.setProperty("javax.net.ssl.keyStore", CERTIFICADO);

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

System.out.println("sslsocketfactory:" + sslsocketfactory.toString() );

URL url = new URL(rota); //Para ambiente de Desenvolvimento
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 requestJson = "{\"grant_type\": \"client_credentials\"}";

try (DataOutputStream stream = new DataOutputStream(conn.getOutputStream())) {

byte[] send = requestJson.getBytes("UTF-8");

stream.write(send);

stream.flush();

}

conn.connect();

String responseJson = inputStreamToString(conn.getInputStream());

Avatar discord do usuario elinardosilva

elinardosilva

Ver Respostas

ai tem a regra de meu negocio como é o caso de $business pois meu app é um SAAS onde terá varias empresas fazendo upload. então so adptar para negocio de vcs, q pode ser um user, ou nem passar ngm. $file ai é pq esse metodo é chamado de um service, e meu controller ta mandando o input q é um arquivo

Avatar discord do usuario nivaldo0238

nivaldo0238

Ver Respostas

pessoal .. que esta de errado aqui ... var options = {
client_id:'Client_Id_YYYY',
client_secret:'Client_Secret_XXX',
sandbox: true
}


var gerencianet = new Gerencianet(options)

console.log('options-->',options)
console.log('gerencianet-->',gerencianet)

var chargeInput = {
items: [{
name: 'Product A',
value: 5,
amount: 2
}]
}

// gerencianet
// .createCharge({}, chargeInput)
// .then(console.log)
// .catch(console.log)
// .done();

Avatar discord do usuario francinaldo0632

francinaldo0632

Ver Respostas


$dados = file_get_contents("php://input");

$diretorio="../log/";
$arquivo= $diretorio."PAGAMENTO.log";
$conteudo= "## ".date("d/m/Y H:i")." ->_GN_RETORNO ,".$dados."\n";
saveLog($arquivo,$conteudo);

echo "200";
?>

Avatar discord do usuario joey_burn

joey_burn

Ver Respostas

''' url = new URL ("https://api-pix-h.gerencianet.com.br/v2/cob/"+main.getSaltString()); //Para ambiente de Desenvolvimento
conn = (HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization","Bearer "+token);
conn.setSSLSocketFactory(sslsocketfactory);

input = "{\"chave\": \"+55 34 9 8436-7252\",\"calendario\": {\"expiracao\": 3600 },\"valor\": {\"original\": \"123.45\" }}";

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

responseCode = conn.getResponseCode();
if (responseCode >= 200) {
System.out.println(responseCode);
reader = new InputStreamReader(conn.getInputStream());
}else {
System.out.println(responseCode);

reader = new InputStreamReader(conn.getErrorStream());
}
br = new BufferedReader(reader);


while ((response = br.readLine()) != null) {
System.out.println(response);
}

Avatar discord do usuario joey_burn

joey_burn

Avatar discord do usuario anoni_mato

anoni_mato

esse campo "solicitacaoPagador" é um campo que pede input do usuário. ele pode ficar sem saber o que digitar nesse campo.

Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

Ver Respostas

assim? json_decode(file_get_contents('php://input'));

Avatar discord do usuario ro.dri.go.sil.va

ro.dri.go.sil.va

boa tarde

Estou guardando no arquivo as notificações do webhook:

$name = 'arquivo.txt';
$text = var_export(file_get_contents("php://input"), true);
$file = fopen($name, 'a');
fwrite($file, $text);
fclose($file);


Gostaria de converter em array para atualizar no banco de dados, alguém?

//Pix recebido
{ pix:
[ { endToEndId: 'E1803615022211340s08793XPJ',
txid: 'fc9a43k6ff384ryP5f41719',
chave: '2c3c7441-b91e-4982-3c25-6105581e18ae',
valor: '0.01',
horario: '2020-12-21T13:40:34.000Z',
infoPagador: 'pagando o pix' } ] }

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

exibir a string (quando não precisaria) pode parecer "newbice" do dev (para quem é mais entendido) e até ser "feio", mas é questão de segurança contra problemas de JS. a página de pagamento do NuBank até a última vez que testei não estava copiando o código no Firefox.. e aí como faz? ter um campo input convencional com a string efetiva visível para ser copiada manualmente em último caso, é um recurso salvador.

Avatar discord do usuario luizcristino

luizcristino

Boa tarde, eu estou tendo um problema na hora da intregação com o pix na hora de adicionar o certificado. Eu estou utilizando o código de exemplo que existe na página de documentação

java
String client_id = "YOUR-CLIENT-ID";
String client_secret = "YOUR-CLIENT-SECRET";;
String basicAuth = Base64.getEncoder().encodeToString(((client_id+':'+client_secret).getBytes()));

//Diretório em que seu certificado em formato .p12 deve ser inserido
System.setProperty("javax.net.ssl.keyStore", "certificado.p12");
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

URL url = new URL ("https://api-pix-h.gerencianet.com.br/oauth/token"); //Para ambiente de Desenvolvimento
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();

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

String response;
while ((response = br.readLine()) != null) {
System.out.println(response);
}
conn.disconnect();

E sempre me retorna Connection Reset até pelo postman

Avatar discord do usuario winkcler

winkcler

$pagarme = new PagarMe\Client(env('API_KEY_PAGARME'));
$requestBody = file_get_contents("php://input");
$signature = $_SERVER['HTTP_X_HUB_SIGNATURE'];
$isValidPostback = $pagarme->postbacks()->validate($requestBody, $signature);

Avatar discord do usuario guilherme_efi

guilherme_efi

<@!585695073908293632>. Pode ser seu caso também... Fiz uma simulação utilizando uma url com uma porta 3000. Ex: https://meudominio.com.br:3000/
E estava apresentando esta mesma mensagem. Para solucionar, tive que liberar a porta no firewal, executando o seguinte comando:
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!585695073908293632>. Pode ser seu caso... Estava simulando aqui, utilizando uma url com uma porta 3000. Ex: https://meudominio.com.br:3000
E estava apresentando esta mesma mensagem. Para solucionar, tive que liberar a porta no firewal, executando o seguinte comando:
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT