Histórico de mensagens sobre input

EXIBINDO CONVERSAS RECENTES:

Texto: input
# pix
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

# pix
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();

# pix
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";
?>

# pix
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);
}

# pix
Avatar discord do usuario joey_burn

joey_burn

# pix
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.

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

ro.dri.go.sil.va

Ver Respostas

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

# pix
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' } ] }

# sugestões
Avatar discord do usuario christianefi

christianefi

Ver Respostas

Pessoal, bom dia.

Sobre a proposta puxada pelo <@!440035527127990273>, corroborada pelo <@!780500321994539068> e pelo <@!522899003663450113>, entendemos que se faz interessante no momento que estamos (antes da implantação). Na verdade, chegamos a discutir isso internamente mas acabou passando. Basicamente precisaremos alterar a nossa camada de comunicação da API, input e output.

Como resposta ao <@!742492546198143151> e sinalização de prazo aos interessados, já estávamos validando a solução desenvolvida, bem com toda a sua integração interna, mas alinhei com as frentes aqui e vimos a alteração como algo positivo e mais tranquilo de ser feito agora, entrando em produção se torna mais difícil.

Vamos fazê-la mas aumentamos em um dia a data proposta para a entrega, passando para quinta-feira (11/03).

# 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.

# sugestões
Avatar discord do usuario francisco.carvalho

francisco.carvalho

Traduzindo as ideias para o input no endpoint /gn/config

# pix
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

# sugestões
Avatar discord do usuario francisco.carvalho

francisco.carvalho

<@!370847985199742977> eu acho que é possível dar uma simplificada no input, de forma que, no final das contas, não importa se o backend trata o match com ifs ou glob ou até uma "regex confiável"

# sugestões
Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

Boa tarde @everyone !

Retomando o assunto endpoint de configurações (https://www.notion.so/Endpoint-de-configura-es-0a97faee68f845ab96ec21551862fe6c).

Nosso time de engenharia observou que existem possíveis situações em que o match do regex com a string do txid pode demorar muitos segundos ou até minutos. Existem situações inclusive de crash da aplicação. Em outras palavras: não é seguro recebermos via input qualquer regex.

Um exemplo que vocês podem testar no browser:

let regexp = /^(\d+)$/;
let str = "012345678901234567890123456789z";
alert( regexp.test(str) );

O alert acima levará um longo tempo até que apareça. Imaginem isso no ato de recebimento de um Pix, no qual cada milisegundo é um fator determinante para um timeout inesperado.

A conclusão é que precisamos controlar melhor quais regex serão aceitas.

A proposta é, ao invés de receber um txidRegex, receber algo mais limitado que também atenda da mesma forma:

"recebimento": {
"txid": {
"comecaCom": "gnPix"
}
}

"recebimento": {
"txid": {
"terminaCom": "gnPix"
}
}

"recebimento": {
"txid": {
"contem": "gnPix"
}
}

comecaCom/terminaCom/contem: a-zA-Z0-9{0,15} //caracteres aceitos

Gostaria de opinião de vocês em relação a essa nova proposta, bem como sugestões dentro dessa nova abordagem.

Para quem interessar, uma referência sobre o assunto regexp-catastophic-backtracking com mais detalhes.
https://javascript.info/regexp-catastrophic-backtracking

# sugestões
Avatar discord do usuario francisco.carvalho

francisco.carvalho

Por Pix Manual podemos entender que são aqueles nos quais o usuário inputa dados bancários (ag, conta, banco..)

# sugestões
Avatar discord do usuario francisco.carvalho

francisco.carvalho

Ver Respostas

## Objetivo

Permitir que o EC defina algumas configurações:

- Quando aceitar um txid;
- Aceitar ou não Pix Manual;
- Quais notificações receber via webhooks;
- Receber ou não a tarifa no webhook;
- Outras configurações podem surgir.

---

# PUT /gn/config

## Input

json
{
"pix": {
"aceitarSemChave": true,
"chaves": [{
"valor": "[email protected]",
"webhook": {
"notificar": {
"envio": true,
"recebimento": true,
"devolucao": true,
"recusa": true
},
"incluir": {
"tarifa": true
}
},
"recebimento": {
"txidRegex": "^[a-zA-Z0-9]+$"
}
}, {
"valor": "[email protected]",
"webhook": {
"notificar": {
"envio": false,
"recusa": false
}
}
}]
}
}

## Output: 200

---

## Definições

Por default:
→ Todas as notificações nascem habilitadas;
→ Não há match de regex: aceita-se qualquer txid;
→ Tarifa não é retornada no webhook;
→ Pix Manual é acatado sempre;

Default em JSON

json

{
"pix": {
"aceitarSemChave": true,
"chaves": [{
"valor": "[email protected]",
"webhook": {
"notificar": {
"envio": true,
"recebimento": true,
"devolucao": true,
"recusa": true
},
"incluir": {
"tarifa": true
}
},
"recebimento": {
"txidRegex": "" // se vazio, desconsiderar
}
}]
}

# pix
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);

# sugestões
Avatar discord do usuario francisco.carvalho

francisco.carvalho

E o input está ficando assim:

{
"pix": {
"webhooks": {
"notificar": {
"envio": true,
"recebimento": true,
"devolucao": true,
"recusa": true
},
"incluir": {
"tarifas": true
}
},
"recebimentos": {
"txidRegex": "^[a-zA-Z0-9]+$"
}
}
}

# pix
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

# pix
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