Histórico de mensagens sobre url em devs

EXIBINDO CONVERSAS RECENTES:

Texto: url
Canal: devs
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

@marcosepetth_tth, esta rota você precisa desenvolver em seu servidor.
A rota precisa aceitar requisições do tipo POST.
Qual rota você esta utilizando para realizar as emissões das cobranças? Podemos auxiliar você de como você deve inserir a URL que irá receber as notificações.

Avatar discord do usuario marcosepetth_tth

marcosepetth_tth

aproveitando, essa url pode ser a mesma rota que vou utilizar para cartão de crédito ou o ideal é manter uma rota para boleto e outra para cartão?

Avatar discord do usuario marcosepetth_tth

marcosepetth_tth

Ver Respostas

eu só vi o "notification_url: null" na resposta, mas não encontrei em que lugar do schema ela entra antes de eu enviar

Avatar discord do usuario marcosepetth_tth

marcosepetth_tth

não, espera... o q eu vi aqui foi a resposta, com o data.notification_url. Como eu adiciono o notification_url para vincular ao pedido?

Avatar discord do usuario marcosepetth_tth

marcosepetth_tth

Ver Respostas

minha dúvida é onde no schema eu adiciono a "notification_url" para receber a notificação de status da cobrança

Avatar discord do usuario carlosgorges

carlosgorges

Ver Respostas

quando eu faço a requisição com "x-skip-mtls-checking" como "false" eu tenho essa resposta: "{
"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"
}"

mas quando eu faço a requisição com "x-skip-mtls-checking" como "true" eu recebo o meu webhook como resposta (que no caso eu entendo que esse seria o resultado esperado)
mas eu gostaria de deixar o "x-skip-mtls-checking" como "false" e deixar o mTLS configurado da forma correta.

Avatar discord do usuario sirjinzinho

sirjinzinho

Ver Respostas

boa tarde, configurei o servidor para bloquear requisições sem o certificado para integrar webhook pix.
porém na hora de cadastrar a chave, recebo o erro:

{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@jonadabir há uma falha na forma com que você está montando a requisição.

Ela deve ser da seguinte forma:

js
const certificatePath = path.join(
__dirname,
'../../../certificates/pix_certificate.p12',
);

const certificate = fs.readFileSync(certificatePath);

const getPixAuthorization = async () => {
const agent = new https.Agent({
pfx: certificate,
passphrase: '',
});

let authParams = {
method: 'POST',
url: 'https://pix-h.api.efipay.com.br/oauth/token',
data: {
grant_type: 'client_credentials',
},
httpsAgent: agent,
};
let token = Buffer.from(credentials.client_id + ':' + credentials.client_secret).toString('base64')
authParams.headers['Authorization'] = 'Basic ' + token
authParams.headers['Content-Type'] = 'application/json'
const authRes = await axios(authParams);

return authRes.data;
};

Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

estou tentando fazer a req de obter autorização PIX porem estou recebendo o seguinte erro:

ts
cause: Error: socket hang up
at TLSSocket.socketOnEnd (node:_http_client:524:23)
at TLSSocket.emit (node:events:531:35)
at endReadableNT (node:internal/streams/readable:1696:12)
at processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'ECONNRESET'
}
Meu código:
ts
const certificatePath = path.join(
__dirname,
'../../../certificates/pix_certificate.p12',
);

const certificate = fs.readFileSync(certificatePath);

const getPixAuthorization = async () => {
const agent = new https.Agent({
pfx: certificate,
passphrase: '',
});

const authParams = {
method: 'POST',
url: 'https://pix-h.api.efipay.com.br/oauth/token',
auth: {
username: credentials.client_id,
password: credentials.client_secret,
},
data: {
grant_type: 'client_credentials',
},
httpsAgent: agent,
};

const authRes = await axios(authParams);

return authRes.data;
};

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @jonadabir, tudo bem?
A autenticação para a API de cobranças deve ser algo da seguinte forma

js
async authenticate() {
let authParams = {
method: 'POST',
url: 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
auth: {
username: credentials.client_id,
password: credentials.client_secret,
},
data: {
grant_type: 'client_credentials',
},
}
return axios(authParams)
.then((res) => {
this.auth = res.data
this.auth.authDate = new Date().getTime() / 1000
})
.catch((error) => {
throw error.data
})
}

Avatar discord do usuario jonadabir

jonadabir

Ver Respostas

Bom dia! Estou tentando fazer a requisiçao de obter a autorizaçao no node igual na documentaçao, porem estou tomando um 401

ts
const credentials = {
client_id: process.env.EFI_CLIENT_ID,
client_secret: process.env.EFI_CLIENT_SECRET,
};

export const getCobrancasAuthorization = async () => {
const data = JSON.stringify({ grant_type: 'client_credentials' });
const data_credentials =
credentials.client_id + ':' + credentials.client_secret;

const auth = Buffer.from(data_credentials).toString('base64');

const config = {
method: 'POST',
url: 'https://cobrancas-h.api.efipay.com.br/v1/authorize',
headers: {
Authorization: 'Basic ' + auth,
'Content-Type': 'application/json',
},
data: data,
};

try {
const response = await axios(config);
return response.data;
} catch (error) {
console.log(error);
}
};

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, como URL do webhook.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Tem você pode colocar https://exemplo.com.br/?ignorar= como URL. Aí ele adiciona o /pix mas vira um parâmetro e você ignora.

Avatar discord do usuario pauloeduardo_dev

pauloeduardo_dev

encontrei meu problema @rubenskuhl POST url-webhook-cadastrada​/pix ele adiciona um /pix ao final do meu endereço webhook configurado

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Quando você altera para true, você irá cadastrar a sua URL sem a validação mtls

Avatar discord do usuario igor_efi

igor_efi

O risco seria que qualquer pessoa poderá realizar requisições em sua URL, porem existem maneiras de você tratar isso também.
Recomendo que você de uma olhadinha em nossa documentação: https://dev.efipay.com.br/docs/api-pix/webhooks
Dentro desta pagina falamos mais sobre o Skip-mTLS e também sobre o hmac

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Perfeito, neste caso então você conseguiria cadastrar uma URL para receber as notificações.
As nossas notificações são realizadas através do metodo POST.

Avatar discord do usuario capitaoredhawk

capitaoredhawk

A autenticação de TLS mútuo não está configurada na URL informada

Avatar discord do usuario clickplattop

clickplattop

Já validei URL, para mim esa correta, mesmo pq o erro é de token.

Avatar discord do usuario otherpaulo

otherpaulo

só funcionou quando passei a url de forma direta