Histórico de mensagens sobre url

EXIBINDO CONVERSAS RECENTES:

Texto: url
# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

$config = [
"certificado" => $this->pixCert,
// "certificado" => DIRPAGE."src/Includes/olimppiuspix.crt.pem",
// "certificado" => "",
"client_id" => $this->clientId,
"client_secret" => $this->clientSecret
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix-h.gerencianet.com.br/v2/webhook/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "https://olimppi.us/webhook/index.php"
}',
CURLOPT_HTTPHEADER => array(
// "authorization: {{Authorization}}",
"Authorization: Basic $autorizacao",
"Content-Type: application/json",
"x-client-cert-pem: {{X-Certificate-Pem}}",
"x-skip-mtls-checking: false"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

Certo, e como faço esse cadastro na prática, digitando a url no navegador: https://api-pix.gerencianet.com.br/v2​/webhook/:34646106000189

# pix
Avatar discord do usuario roguitar88

roguitar88

$body = [
"calendario" => [
"expiracao" => 3600
],
// "devedor" => [
// "cpf" => "53147430278",
// "nome" => "Rogerio Brito Soares"
// ],
"valor" => [
"original" => "0.01"
],
"webhookUrl" => "https://olimppi.us/webhook/index.php",
"chave" => "34646106000189"
// "solicitacaoPagador" => "Informe o número ou identificador do pedido.",
// "infoAdicionais" => [
// [
// "nome" => "Campo 1", // Nome do campo string (Nome) ≤ 50 characters
// "valor" => "Informação Adicional1 do PSP-Recebedor" // Dados do campo string (Valor) ≤ 200 characters
// ],
// [
// "nome" => "Campo 2",
// "valor" => "Informação Adicional2 do PSP-Recebedor"
// ]
// ]
];

# pix
Avatar discord do usuario roguitar88

roguitar88

Certo, agora outra dúvida: Lá na hora de criar a cobrança via pix, lá no create, sou obrigado a colocar esse webhookUrl como parâmetro?

# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

Sim, que seria o chamado callback. No manual tá assim: "POST {$request.body#​/webhookUrl}​/pix"

# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

Os dados que recebo via essa url (webhook) são enviados a mim via $_POST?

# pix
Avatar discord do usuario roguitar88

roguitar88

Mas quando tento acessar a url, dá isso aqui:

# pix
Avatar discord do usuario roguitar88

roguitar88

Ver Respostas

$options['headers'] = array(
'x-skip-mtls-checking' => 'true',
);

try {
$api = Gerencianet::getInstance($options);

$params = ['chave' => '34646106000189'];
$body = ['webhookUrl' => 'https://olimppi.us/webhook'];
// https://olimppi.us/webhook/pix.php?ignorar=
// https://olimppi.us/webhook/pix.php?ignorar=/pix

$pix = $api->pixConfigWebhook($params, $body);
echo json_encode($pix);

} catch (GerencianetException $e) {
print_r($e->code);
print_r($e->error);
print_r($e->errorDescription);

throw new \Error($e->error);
} catch (\Exception $e) {
throw new \Error($e->getMessage());
}

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

<@!723278999236771916> o que o Rubens lhe exemplificou é no momento que você for vincular sua chave Pix a uma URL do Webhook.

Ou seja, para que seu sistema receba estas notificações, primeiramente você deve consumir a rota PUT /v2​/webhook/:chave, no caso da SDK utilize o arquivo examples\pix\webhooks\update.php passando como parâmetro sua chave Pix, no body sua URL do webhook e 'x-skip-mtls-checking' => 'false', // Para validar o mTLS

Desta forma, , os PIX associados a um txid gerados com sua chave serão notificados.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

O que já notei em copia e cola é que alguns apps copiam por default em torno da URL. Aí que tem que usar uma opção de menu para copiar a mensagem inteira.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!447502336060030977>! É possível sim.
Basta você associar uma URL do seu servidor à sua chave pix. Desta forma, todas alterações de status de um Pix associado a um txid será enviada uma notificação para seu webhook.

# pix
Avatar discord do usuario roguitar88

roguitar88

Fatal error: Uncaught Error: cURL error 58: unable to set private key file: '/etc/certs-gerencianet/olimppiuspix.crt.pem' type PEM (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /var/www/html/olimppius/src/Classes/ClassOrder.php:890 Stack trace: #0 /var/www/html/olimppius/app/Controller/ControllerPix.php(20): Src\Classes\ClassOrder->hirePlan() #1 /var/www/html/olimppius/app/Dispatch.php(44): App\Controller\ControllerPix->__construct() #2 /var/www/html/olimppius/app/Dispatch.php(36): App\Dispatch->addController() #3 /var/www/html/olimppius/public/index.php(7): App\Dispatch->__construct() #4 {main} thrown in /var/www/html/olimppius/src/Classes/ClassOrder.php on line 890

# pix
Avatar discord do usuario roguitar88

roguitar88

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api-pix-h.gerencianet.com.br/oauth/token');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$pem=realpath("/etc/certs-gerencianet/olimppiuspix.crt.pem");
if(!$pem || !is_readable($pem)){
die("olimppiuspix.crt.pem is not readable! realpath: \"{$pem}\" - working dir: \"".getcwd()."\" effective user: ".print_r(posix_getpwuid(posix_geteuid()),true));
}
curl_setopt($ch, CURLOPT_SSLCERT, $pem);

# pix
Avatar discord do usuario roguitar88

roguitar88

Fatal error: Uncaught Error: cURL error 58: could not load PEM client certificate, OpenSSL error error:0200100D:system library:fopen:Permission denied, (no key found, wrong pass phrase, or wrong file format?) (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) in /var/www/html/olimppius/src/Classes/ClassOrder.php:889 Stack trace: #0 /var/www/html/olimppius/app/Controller/ControllerPix.php(20): Src\Classes\ClassOrder->hirePlan() #1 /var/www/html/olimppius/app/Dispatch.php(44): App\Controller\ControllerPix->__construct() #2 /var/www/html/olimppius/app/Dispatch.php(36): App\Dispatch->addController() #3 /var/www/html/olimppius/public/index.php(7): App\Dispatch->__construct() #4 {main} thrown in /var/www/html/olimppius/src/Classes/ClassOrder.php on line 889