![Avatar discord do usuario alissonmaciel_32335](https://cdn.discordapp.com/embed/avatars/0.png)
webhook bem complicado esse
E na minha requisição pra criar o webhook, ainda estou recebendo essa mensagem de erro:
string(102) "{"nome":"webhook_invalido","mensagem":"A requisição na URL informada falhou com o erro: ECONNRESET"}"
No meu arquivo webhook.php eu coloquei pra criar um TXT do que é recebido e recebo isto:
{
"evento": "teste_webhook",
"data_criacao": "2024-05-09T15:13:32.178Z"
}
Ok, no $body insira o ?ignorar=
$body = '{
"webhookUrl": "https://julioerp.agenciaweblab.com.br/webhook.php?ignorar="
}';
E no arquivo "/webhook.php" inseira o exemplo de código abaixo:
' . json_encode($resposta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '';
string(102) "{"nome":"webhook_invalido","mensagem":"A requisição na URL informada falhou com o erro: ECONNRESET"}"
esse requisição do webhook precisa do certificado?
Meu Webhook: public function webhook() {
$body = '{
"webhookUrl": "https://julioerp.agenciaweblab.com.br/webhook.php"
}';
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->config['rotas'] . '/v2/webhook/' . $this->config['chave_pix']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_SSLCERT, $this->config["certificado"]);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, '');
$headers = array();
$headers[] = 'Authorization: Basic ' . $this->access_token;
$headers[] = 'X-Skip-Mtls-Checking: true';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo '
';';
var_dump($this->config['chave_pix'], $this->config['client_id'], $this->config['client_secret'], $result);
echo '
';';
var_dump($e->getCode(), $e->getFile(), $e->getMessage());
echo '
nao estou tendo exito nessa questao do webhook
E estou recebendo este erro:
Chave PIX: string(36) "5cd9a718-ce6d-4564-bc10-c5b03e7a998f"
Response do método webhook: string(172) "{"nome":"json_invalido","mensagem":"Valores ou tipos de campo inválidos","erros":[{"chave":"required","caminho":"","mensagem":"deve ter a propriedade obrigatória body"}]}"
Estou executando este método:
public function webhook() {
$body = '{
"webhookUrl": "https://julioerp.agenciaweblab.com.br/webhook.php"
}';
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->config['rotas'] . '/v2/webhook/' . $this->config['chave_pix']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_SSLCERT, $this->config["certificado"]);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, '');
$headers = array();
$headers[] = 'Authorization: Bearer ' . $this->access_token;
$headers[] = 'X-Skip-Mtls-Checking: true';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo '
';';
var_dump($this->config['chave_pix'], $result);
echo '
';';
var_dump($e->getCode(), $e->getFile(), $e->getMessage());
echo '
A ideia é esta mesmo, @alissonmaciel_32335. Você irá utilizar este endpoint PUT/v2/webhook/:chave para associar sua URL de notificação a sua chave Pix. E então as cobranças Pix que tiverem um txid e sua chave Pix, nós iremos enviar a notificação para a URL registrada. Essa configuração pode ser feita uma única vez.
Pontuando que para registrar sua URL de notificação, é importante que seu servidor tenha algumas configurações para atender a comunicação com mTLS para segurança da sua aplicação. Você encontra mais detalhes em nossa documentação e nos vídeos a seguir: https://dev.gerencianet.com.br/docs/api-pix-endpoints#webhooks
https://youtu.be/hdyUHzNwVLY?list=PLRqvcUTH2VsWufBmzOdTVeLEOTGrPNoiu
https://youtu.be/XB9bcZFTV3M?list=PLRqvcUTH2VsWufBmzOdTVeLEOTGrPNoiu
na requisição do webhook to fazendo assim, está correto? e eu chamo esse metodo no meu construct
Depende da sua estratégia de descobrir que foi pago... webhook é a melhor alternativa, mas não a única.
nesse caso terei que criar um arquivo webhook.php
poxa eu nao entendi muito sobre o webhook
webhook não precisa recuperar, o acionamento do webhook já vai te mandar os dados.
Mas webhook, GET de /cob (pós-pagamento) e GET de /pix todos tem os mesmos dados.
nesse caso ai eu tenho que recuperar o webhook atraves do txid? e irá me retornar esses dados?
Vem no webhook, tem no GET de /cob também um objeto pix com ele, após o pagamento acontecer.