Boa tarde, @errorzadaa!
Sim, a nossa API Pix possui o recurso de webhook.
Você consegue consultar mais informações em nossa API: https://dev.efipay.com.br/docs/api-pix/webhooks
Termos mais procurados:
Termos mais procurados:
Boa tarde, @errorzadaa!
Sim, a nossa API Pix possui o recurso de webhook.
Você consegue consultar mais informações em nossa API: https://dev.efipay.com.br/docs/api-pix/webhooks
@rubenskuhl obrigado pelo retorno, eu tentei integrar no meu Controller (uso nestjs) na minha API que está no heroku, aqui está o código:
import {
ClassSerializerInterceptor,
Controller,
HttpCode,
HttpStatus,
Logger,
Post,
Req,
UseInterceptors,
} from '@nestjs/common';
import { LoggerInterceptor } from '@src/common/logger/logger-interceptor';
import configuration from '@src/config/configuration';
import axios from 'axios';
import { Request } from 'express';
import as https from 'https';
const { httpsOptions } = configuration();
@Controller('efi-gerencianet')
@UseInterceptors(ClassSerializerInterceptor, LoggerInterceptor)
export class EfiGerencianetController {
private readonly logger = new Logger(EfiGerencianetController.name);
private instance = axios.create({
httpsAgent: new https.Agent({
ca: httpsOptions.ca,
requestCert: true,
rejectUnauthorized: true,
}),
headers: {
'x-skip-mtls-checking': true,
},
});
@Post('webhook/pix')
@HttpCode(HttpStatus.OK)
handlePixCallback(@Req() req: Request) {
const body = req.body;
this.logger.log(Received callback from Gerencianet);
this.logger.debug(body);
return body;
}
@Post('configure-webhook')
async configureWebhook() {
const url =
'https://api-pix.gerencianet.com.br/v2/webhook/4114c4e9-202c-4979-8534-34a4e5a29ad0';
const data = {
webhookUrl: '',
};
try {
const response = await this.instance.put(url, data);
this.logger.log(
Webhook configured successfully. Status code: ${response.status},
);
return response.data;
} catch (error) {
this.logger.error(Error configuring webhook: ${error.message});
throw new Error(Error configuring webhook: ${error.message});
}
}
}
subi pra produção, e ao chamar o endpoint recebo o erro: Error: Error configuring webhook: read ECONNRESET
Para SSL estou usando o heroku ACM (auto managed).
Sabem o que posso estar fazendo errado?
Uma coisa estranha é que não tem o nome desse site especificamente no certificado:
https://www.ssllabs.com/ssltest/analyze.html?d=doss-api.azurewebsites.net
E a API Pix não permite uso de certificado wildcard. Mas isso já deveria ter dado erro na ativação do webhook.
Boa noite, alguém já teve a mensagem de erro e conseguiu resolver: "{
nome: 'webhook_invalido',
mensagem: 'A URL informada está inacessível'
}", ao tentar configurar o webhook do pix? Estou tentando ainda de Homologação. No momento não sei como prosseguir.
copié y pegué el archivo .php del ejemplo lo analicé para entender qué hacía y me pareció que no me hacía lo que peregunté. Para confirmar le puse https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt dentro del request URI y lo corrí, y como me imaginé, no anda. Por favor, necesito un ejemplo claro para permitir que mi server se pueda contactar al server de EFI. Hay dos errores que me aparecen:
PHP Warning: Undefined array key "REQUEST_METHOD" in /home/goopzer/ipn/EFI_webh.php on line 46
PHP Warning: Undefined array key "https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt" in /home/goopzer/ipn/EFI_webh.php on line 47
Me pueden indicar específicamente qué escribir en esos dos campos por favor?
REQUEST_METHOD
REQUEST_URI
Saludos
Bom dia, alguém pode me dar uma mão?
Estou testando a criação de um webhook, mas estou recebendo a seguinte mensagem:
Oi Guilherme:
Estou com um problema com o webhook
Consigo listar os webhooks configurados sem problema.
O problema vem quando quero configurar um novo webhook para receber notificações de pagamento
Aqui esta meu codigo:
const efipay = new EfiPay(options)
async function api_configure_webhook_efipay( req, res, next ) {
let body = {
webhookUrl: 'https://origami.ink/webhook_paymentefipay',
}
let params = {
chave: '8712f01e-e8e6-4eab-a636-ddc8e13fe8b7',
}
try {
let object_result = await efipay.pixConfigWebhook(params, body)
printf( "[configure_webhook] -> object_result -> ", object_result )
res.json( object_result )
} catch( e ) {
// throw e
res.json( e )
}
}
module.exports = api_configure_webhook_efipay
Aqui esta o erro:
{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ECONNRESET"
}
Estou com um problema com o webhook
Consigo listar os webhooks configurados sem problema.
O problema vem quando quero configurar um novo webhook para receber notificações de pagamento
Aqui esta meu codigo:
const efipay = new EfiPay(options)
async function api_configure_webhook_efipay( req, res, next ) {
let body = {
webhookUrl: 'https://origami.ink/webhook_paymentefipay',
}
let params = {
chave: '8712f01e-e8e6-4eab-a636-ddc8e13fe8b7',
}
try {
let object_result = await efipay.pixConfigWebhook(params, body)
printf( "[configure_webhook] -> object_result -> ", object_result )
res.json( object_result )
} catch( e ) {
// throw e
res.json( e )
}
}
module.exports = api_configure_webhook_efipay
Aqui esta o erro:
{
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ECONNRESET"
}
Oi, pra confirmar se o pix foi pago seria algo assim? (não sei muito sobre isso, to aprendendo e usei o GPT pra criar o código.)
app.post('/webhook(/pix)?', async (req, res) => {
try {
// Consultar a cobrança usando o txid
const response = await axios.get(/v2/cob/:txid, {
headers: {
Authorization: 'Bearer' + process.env.GN_CLIENT_ID // Substitua pelo token de autorização correto
}
});
// Verificar o status da cobrança na resposta
if (response.status === 200 && response.data.status === 'CONCLUIDA') {
// Enviar o código de ativação para o Supabase
const { data: insertedData, error } = await supabaseClient
.from('dominios_permitidos')
.insert([{ code: generatedCode }]); // Acesse o código gerado na rota '/api/key'
// Enviar o código de ativação junto com a resposta
return res.status(200).json({ message: 'Webhook recebido com sucesso.', code: generatedCode });
} else {
// Se a cobrança não estiver concluída, retorne uma mensagem de erro
return res.status(400).json({ error: 'Cobrança não concluída.' });
}
} catch (error) {
console.error('Erro ao consultar a cobrança:', error.message);
return res.status(500).json({ error: 'Erro ao consultar a cobrança.' });
}
});
Boa tarde estou tentando fazer a integração com WHMCS porem ao salvar a inegração esta dando o seguinte erro:
Falha ao cadastrar WEBHOOK
Your changes have not been saved.
boa tarde estou recebendo o seguinte erro: {
"code": 141,
"error": {
"nome": "webhook_invalido",
"mensagem": "A requisição na URL informada falhou com o erro: ERR_TLS_CERT_ALTNAME_INVALID"
}
}
"erro": "Método 'pixGetWebhook' solicitado inexistente"
Na nova sdk qual é o metodo que chama? ao inves do getInstance?
´´´
{
"message": "Erro interno do servidor",
"erro": {
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 400"
}
}
´´´
uma duvida, chamei POST : https://pix-h.api.efipay.com.br/v2/cob
mas havia colocado o metadata para a url de notificacao, tomei erro
{"nome":"json_invalido","mensagem":"Valores ou tipos de campo inválidos","erros":[{"chave":"additionalProperties","caminho":".body","mensagem":"não são permitidas propriedades adicionais"}]}
"metadata": { "notification_url": "http:\/\/webhook.site.com.br" }
e vendo na doc, realmente nao da suporte para metadata, entao como fazer para ligar o webhook do pix via notification_url ?
o @rubenskuhl cara eu não acho o erro
server {
server_name webhook.redebrasilrp.com.br;
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/webhook.redebrasilrp.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/webhook.redebrasilrp.com.br/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_client_certificate /var/www/html/backend/webhookpix/public_key/chain-pix-sandbox.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
location / {
proxy_pass http://127.0.0.1:8082;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass http://127.0.0.1:8082; # Alterado para a mesma configuração de proxy_pass na localização padrão
}
}
server {
if ($host = webhook.redebrasilrp.com.br) {
return 301 https://$host$request_uri;
}
server_name webhook.redebrasilrp.com.br;
listen 80;
return 404;
}
{
"message": "Erro interno do servidor",
"erro": {
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 400"
}
}
Olá, tudo bem ? Ao configurar o webhook, estou recebendo o seguinte erro
{
nome: 'json_invalido',
mensagem: 'Valores ou tipos de campo inválidos',
erros: [
{
chave: 'additionalProperties',
caminho: '.body',
mensagem: 'não são permitidas propriedades adicionais'
}
]
}
{
webhookUrl: 'https://application.cardi.digital/str/order/sales/pix/webhook/'
}
bom dia, estou integrando a efi com whmcs mais estou com erro de webhook, ele faz os dados de saida: {
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 404"
}
Boa tarde. Estou tentando configurar o webhook no meu servidor porém estou recebendo 401. Estes são meus códigos :
Fala pessoal, já tive esse problema e não lembro como resolvi.
Estou com dificuldade em registrar meu webhook.
O erro que recebo é este:
> {
> "nome": "webhook_invalido",
> "mensagem": "A URL informada respondeu com o código HTTP 400"
> }.
A configuração do meu Nginx:
location /rifas/gerencianet/webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass http://127.0.0.1:3333;
}
location / {
proxy_pass http://127.0.0.1:3333;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/api.cacaubox.shop/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/api.cacaubox.shop/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_client_certificate /home/app/luck-back/src/modules/clients/certs/chain-pix-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
}
server {
if ($host = api.cacaubox.shop) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
Alguém poderia me ajuda? Preciso entender pq que dá isso, não aguento mais passar por esse erro direto 😅 .