Histórico de mensagens

EXIBINDO CONVERSAS RECENTES:

Data: 13/11/2023
# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

POST eu não acho legal, porque não evita transações repetidas.
O ideal é gerar o txid a partir de um número único que já exista no seu processo. Número do pedido, número da nota fiscal etc.

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

só ta faltando eu conseguir captar o status para finalizar 😅

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

abaixei para R$1.00 porém não recebi nada. Dentro da pix esta o código que vocês tem de exemplo, que me parece estar ok. Se recebe request tipo POST ele salva o json. Porém ainda zerado

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

não, usei a direta. Utilizando POST

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sobre o txid, não foi você criou o txid ao criar a cobrança ? Você está fazendo PUT em /cob ou POST em /cob ?

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

pelo que entendi essa função acima ja faz isso, certo? Se a requisição vier como POST vai salvar no arquivo dados.json o que recebeu. Certo?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Em homologação você só recebe webhooks de cobranças até R$10. Então para testar lá, baixe o valor da cobrança.

# pix
Avatar discord do usuario gabriel_efi

gabriel_efi

Olá, @vitor.oliveira94!
Você chegou a tentar verificar o JSON que está chegando, salvando em um log para averiguações?

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

estou usando o exemplo de código que esta no site.

function resposta($status, $mensagem, $dados)
{
$resposta['status'] = $status;
$resposta['mensagem'] = $mensagem;
$resposta['dados'] = $dados;
$json_resposta = '
' . json_encode($resposta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

header("HTTP/1.1 " . $status);
echo $json_resposta;
}

function salvar($dados)
{
// Crie um arquivo .;json para salvar as informações
$nomeArquivo = 'dados.json';
$dadosGravados = json_decode(file_get_contents($nomeArquivo), true);
$arquivo = fopen($nomeArquivo, 'w');

// Incrementa as informações enviadas com o que já havia gravado
array_push($dadosGravados, $dados);

if (fwrite($arquivo, json_encode($dadosGravados))) {
resposta(200, "Requisição realizada com sucesso!", $dados);
} else {
resposta(300, "Falha ao salvar os dados da requisição.", $dados);
}

fclose($arquivo);
}

function requisicao($metodo, $body, $parametros)
{
switch ($metodo) {
case 'POST':
salvar($body);
break;
case 'GET':
resposta(200, "Requisição realizada com sucesso!", $body);
break;
}
}

// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);

try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
resposta(400, $e->getMessage(), $e);
}

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

testei modo homologação, achei que o código iria salvar um json caso recebesse algo mas não parece estar recebendo

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

no modo homologação também vou receber esse? Entendi que o correto seria salvar o txid no banco de dados para quando receber algum webhook atualizar o status ligando com ele, certo?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Detalhe que é o que vem no webhook é um array de pix... então teoricamente você receber mais de uma confirmação no mesmo acionamento do webhook. A Efí não costuma usar isso, mas pode acontecer se o banco pagador mandar dois pagamentos pra Efí no mesmo pacote do Pix.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O que você vai receber no webhook é algo assim:

{
"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"
}
]
}

Então o txid que você mandou ao fazer PUT no /cob, é o que você usa para fazer match desse Pix com a cobrança.
E você confere também chave (tem que ser a mesma chave que você usou no /cob) e o valor (tem que ser o mesmo valor). Se tudo certo, você dá como pago.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ah ok.

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

nao, mandei https:/exemplo.com.br/

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Vc mandou para a configuração do webhook https:/exemplo.com.br/pix ? Pq aí a Efí vai acionar https://exemplo.com.,br/pix/pix ...

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

agora como seria para capturar os dados de alteração de um pagamento via pix? Preciso atualizar o status no site assim que efetuarem o pagamento

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver Respostas

beleza. Consegui retorno de status 200 na pagina /pix