Histórico de mensagens sobre url em devs

EXIBINDO CONVERSAS RECENTES:

Texto: url
Canal: devs
Avatar discord do usuario cleitonconceicao_

cleitonconceicao_

onde coloco a url?

Avatar discord do usuario joao_efi

joao_efi

@cleitonconceicao_ o fluxo ocorre conforme a imagem abaixo.
O token de notificação é enviado para a URL informada sempre que ocorre uma mudança no status da cobrança.
imagem enviada na mensagem pelo usuario joao_efi

Avatar discord do usuario cleitonconceicao_

cleitonconceicao_

eu entendi da seguinte forma, qd gero o boleto envio a url q será notificada. mas n de acordo com a documentação preciso desse token. e esse token não vieo qd gerei o boleto

Avatar discord do usuario cleitonconceicao_

cleitonconceicao_

Ver Respostas

@joao_efi , tem uns boletos q já foram gerados sem essa url.

Avatar discord do usuario joao_efi

joao_efi

Bom dia @cleitonconceicao_ tudo certo?
Isso mesmo!
Em relação aos boletos você precisa informar a URL de notificação no momento da emissão através do atributo notification_url

Avatar discord do usuario cleitonconceicao_

cleitonconceicao_

pq em outra api que eu utilizo cadastro minha url lá na aplicação do banco e pronto.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @cleitonconceicao_. Bom dia! Tudo bem?
Para configurar um webhook na plataforma da Efi e realizar a baixa automática de boletos no seu sistema, você pode seguir o processo descrito na documentação oficial. Basicamente, quando você emite um boleto via API, você irá enviar também a URL de notificação junto com as informações do boleto. Então, sempre que houver uma alteração no status do boleto, a Efi enviará uma notificação para essa URL.

Essa notificação contém um token único para cada cobrança. Seu sistema deve consultar esse token para obter os detalhes da notificação e identificar a cobrança específica para fazer a conciliação. Você pode conferir todos os detalhes no link da documentação: Notificação de Boletos.

Além disso, temos um vídeo que explica detalhadamente como realizar esse procedimento, o que pode ser muito útil para você: Assista ao vídeo.

Espero que isso ajude! Conte com a gente!

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

// alternatively you can use pfx + password as well here
const httpsAgent = new https.Agent({
cert: fs.readFileSync(process.env.PUBLIC_CERTIFICATE_PATH),
key: fs.readFileSync(process.env.PRIVATE_KEY_PATH),
ca: fs.readFileSync(process.env.CA_CHAIN_PATH)
})

axios.get(url, { httpsAgent })

Avatar discord do usuario nauvaro

nauvaro

Ver Respostas

Boa noite. Eu tenho um site em vps com Apache, Wordpress, plugin do Efí para Woocommerce, tentando configurar o mTLS no Apache mas recebo a falha:
"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"
nas requisições da Api PIX. Eu li vários casos semelhantes aqui, mas não consegui chegar num resultado positivo.

Tenho
SSLEngine On
SSLCertificateFile /www/server/panel/vhost/letsencrypt/meusite.com.br/fullchain.pem
SSLCertificateKeyFile /www/server/panel/vhost/letsencrypt/meusite.com.br/privkey.pem

#Chave pública da Efí
SSLCACertificateFile /www/wwwroot/meusite.com.br/certificate-chain-prod.crt

# mTLS Efí
SSLVerifyClient require
SSLVerifyDepth 3

Alias "/pix/" "/www/wwwroot/meusite.com.br/webhook/index.php"
Alias "/pix" "/www/wwwroot/meusite.com.br/webhook/index.php"

mas as minhas páginas exibem a mensagem "O certificado de login não foi aceito ou não foi fornecido." e se eu tentar

# mTLS Efí
SSLVerifyClient none
SSLProtocol TLSv1.2


SSLVerifyClient require
SSLVerifyDepth 3


as páginas voltam ao normal, menos o caminho /webhook. Nas duas situações a falha webhook_invalido é a mesma. Deu pra perceber que não tenho um conhecimento muito aprofundado na área né? Mas tô tentando e não saio dessa etapa, alguém que já passou pelo mesmo e/ou que conhece a situação poderia me jogar uma luz?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Você mapeou o /pix na sua aplicação?
As notificações de pagamento são enviadas na rota /pix.
Caso você não queira que seja enviado nesta rota, você precisa cadastrar a sua URL com o parametro ?ignorar=

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @immaycon! Não tivemos alterações.
Você tentou cadastrar novamente a URL para verificar o retorno da sua aplicação?

Avatar discord do usuario crytianwalrkess

crytianwalrkess

Ver Respostas

Bom dia pessoal , estou usando o projeto do git para apreendizando , porem depois de configurar todo projeto e fazer test via postman sugiu esse log : Erro cURL 60: problema com certificado SSL: certificado autoassinado na cadeia de certificados (veja https://curl.haxx.se/libcurl/c/libcurl-errors.html) para https://pix.api.efipay.com.br/oauth/token
so consigo testa via web com protocolo HTTPS ?

Avatar discord do usuario cleyton5212

cleyton5212

async def verify(self):
url = f"https://pix.api.efipay.com.br/v2/cob/{self.payment_id}" # https://qrcodes-pix.efipay.com.br/v2/
response = await self.hc.get(url, headers=self.header)

rjson = response.json()

if response.status_code != 200:
raise Exception(f"Erro ao verificar pagamento: {rjson.get('mensagem')}")

if rjson.get("status", "").upper() == "CONCLUIDA":
self.status_payment = "PAGO"

return self.status_payment

Avatar discord do usuario cleyton5212

cleyton5212

payload = {
"calendario": {"expiracao": time},
# "devedor": {"cpf": cpf, "nome": name},
"valor": {"original": two_case(value)},
"chave": self.key_pix,
"solicitacaoPagador": "Informe o número ou identificador do pedido.",
}
self.header = header
dados = await self.hc.post(
"https://pix.api.efipay.com.br/v2/cob",
headers=header,
json=payload,
)
djson = dados.json()

# Adicionando verificações de erro
if dados.status_code != 201:
raise Exception(f"Erro ao criar cobrança: {djson.get('mensagem')}")

ID = djson.get("loc", {}).get("id")
if not ID:
raise Exception("Erro: ID da localização não encontrado na resposta.")

url = f"https://pix.api.efipay.com.br/v2/loc/{ID}/qrcode"
rt = await self.hc.get(url, headers=header)
rjson = rt.json()

if rt.status_code != 200:
raise Exception(f"Erro ao obter QR Code: {rjson.get('mensagem')}")

self.payment_id = djson.get("txid")
self.user_id = user_id

return rjson

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

O correto seria:
.
.
metadata: {
notification_url: ''
}
.
.
Segue um exemplo de emissão oneStep na SDK em PHP: https://github.com/efipay/sdk-php-apis-efi/blob/main/examples/charges/billet/createOneStepBillet.php

Avatar discord do usuario marcosepetth_tth

marcosepetth_tth

Ver Respostas

eu vi um exemplo em php, me corrige se não for isso, @igor_efi, mas esse atributo vai em:
let body={
payment:{ ... },
customer: { ... },
items: [ {... }, ... ],
notification_url: minhaurl.aqui
}

No corpo da requisição que faço para 'efipay.createOneStepCharge([], body);', é isso?

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Você consegue informar a url no momento da emissão da cobrança, não precisa emitir e depois acionar este endpoint.
Na requisição de emissão, você adiciona o atributo metadata -> notification_url e ja emite a cobrança com esta informação.

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Isso, o atributo notification_url precisa ser inserido dentro do atributo metadata