Histórico de mensagens sobre input

EXIBINDO CONVERSAS RECENTES:

Texto: input
# pix
Avatar discord do usuario lucio3859

lucio3859

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

Exception Text
System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.
at System.Convert.FromBase64_Decode(Char startInputPtr, Int32 inputLength, Byte startDestPtr, Int32 destLength)
at System.Convert.FromBase64CharPtr(Char inputPtr, Int32 inputLength)
at System.Convert.FromBase64String(String s)
at QRCodeVB.PixGenerateQRCode.Execute()
at QRCodeVB.Form1.criarpagamento()
at QRCodeVB.Form1.Button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

# bolix
Avatar discord do usuario andresisdanca

andresisdanca

# bolix
Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas
# bolix
Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas
# módulos-plugins
Avatar discord do usuario josegerdes

josegerdes

Acho que é erro de input

# pix
Avatar discord do usuario wardestiny3024

wardestiny3024

tem que pegar usando file_get_contents('php://input')

# cartões
Avatar discord do usuario unostore

unostore

Outra duvida, tem alguma maneira de criar uma transação usando cartão sem utilizar uma frontend? Tipo criar um "input" no discord e com esses dados direto do backend gerar a transação?

# cartões
Avatar discord do usuario unostore

unostore

Ver Respostas

Eu fiz todo processo para criar uma transação e quando vou executar ela, com cartão real para testar se realmente esta funcionando, ela não debita nada do meu cartão e fica waiting pra sempre...
Usei o front-end para gerar o payment_token, depois utilizei o python para gerar a Transação por cartão de crédito em One Step e depois um webhook para receber o token.

json
{
"code": 200,
"data": [
{
"id": 1,
"type": "charge",
"custom_id": null,
"status": {
"current": "new",
"previous": null
},
"identifiers": {
"charge_id": 484164061
},
"created_at": "2022-10-26 04:51:07"
},
{
"id": 2,
"type": "charge",
"custom_id": null,
"status": {
"current": "waiting",
"previous": "new"
},
"identifiers": {
"charge_id": 484164061
},
"created_at": "2022-10-26 04:51:07"
}
]
}
json
{
"code": 200,
"data": [
{
"id": 1,
"type": "charge",
"custom_id": null,
"status": {
"current": "new",
"previous": null
},
"identifiers": {
"charge_id": 484164061
},
"created_at": "2022-10-26 04:51:07"
},
{
"id": 2,
"type": "charge",
"custom_id": null,
"status": {
"current": "waiting",
"previous": "new"
},
"identifiers": {
"charge_id": 484164061
},
"created_at": "2022-10-26 04:51:07"
},
{
"id": 3,
"type": "charge",
"custom_id": null,
"status": {
"current": "unpaid",
"previous": "waiting"
},
"reason": "Ocorreu um erro inesperado no cart\u00e3o. Por favor, tente novamente mais tarde.",
"identifiers": {
"charge_id": 484164061
},
"created_at": "2022-10-26 04:57:16"
}
]
}

Outra duvida, tem alguma maneira de criar uma transação usando cartão sem utilizar uma frontend? Tipo criar um "input" no discord e com esses dados direto do backend gerar a transação?

# pix
Avatar discord do usuario david_balbino

david_balbino


public class GerarPix {

static public void gerarPix(int valor){

Credentials credentials = new Credentials();

JSONObject options = new JSONObject();
options.put("client_id", credentials.getClientId());
options.put("client_secret", credentials.getClientSecret());
options.put("pix_cert", credentials.getCertificadoPix());
options.put("sandbox", credentials.isSandbox());

JSONObject body = new JSONObject();
body.put("calendario", new JSONObject().put("expiracao", 3600));
//body.put("devedor", new JSONObject().put("cpf", "94271564656").put("nome", "Gorbadoc Oldbuck"));
body.put("valor", new JSONObject().put("original", valor));
body.put("chave", "sua_chave");

try {
Gerencianet gn = new Gerencianet(options);
JSONObject response = gn.call("pixCreateImmediateCharge", new HashMap(), body);
System.out.println(response);
}catch (GerencianetException e){
System.out.println(e.getError());
System.out.println(e.getErrorDescription());
}
catch (Exception e) {
System.out.println(e.getMessage());
}

}


static public void gerarQrCode(String locId){

Credentials credentials = new Credentials();

HashMap options = new HashMap();
options.put("client_id", credentials.getClientId());
options.put("client_secret", credentials.getClientSecret());
options.put("pix_cert", credentials.getCertificadoPix());
options.put("sandbox", credentials.isSandbox());

HashMap params = new HashMap();
params.put("id", locId );

try {
Gerencianet gn = new Gerencianet(options);
Map response = gn.call("pixGenerateQRCode", params, new HashMap());

File outputfile = new File("qrCodeImage.png");
ImageIO.write(ImageIO.read(new ByteArrayInputStream(javax.xml.bind.DatatypeConverter.parseBase64Binary(((String) response.get("imagemQrcode")).split(",")[1]))), "png", outputfile);
Desktop desktop = Desktop.getDesktop();
desktop.open(outputfile);

}catch (GerencianetException e){
System.out.println(e.getError());
System.out.println(e.getErrorDescription());
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

# pix
Avatar discord do usuario tadgaudio

tadgaudio

Ver Respostas

ignora o teste boleto pq na verdade eu só estou usando o mesmo input pra fazer a chamada.

# 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

# pix
Avatar discord do usuario brunodelara

brunodelara

Ver Respostas

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

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

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

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

# novidades-e-curiosidades
Avatar discord do usuario evanil

evanil

Ver Respostas

Input bem no início, aí uma integração, no "ERP" do estabelecimento buscaria para a Maquininha o valor daquele pedido/mesa

# novidades-e-curiosidades
Avatar discord do usuario evanil

evanil

Ver Respostas

Mas será que um Input na Maquininha com o número do Pedido/Mesa seria mais prioritário que essa sugestão?

# novidades-e-curiosidades
Avatar discord do usuario jonasbp.

jonasbp.

Ver Respostas

Uma máquina de cartão da gerencianet com possibilidade de desenvolver alguma integração como fazer com que ela aceite o input de valor de venda via API seria incrível 😁

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

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