Histórico

EXIBINDO CONVERSAS RECENTES:

Data: 24/05/2024
# devs
Avatar discord do usuario jonadabir

jonadabir

Ver RespostasVer no Discord

obtive o mesmo erro

# devs
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver RespostasVer no Discord

@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;
};

# devs
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

O arquivo existe e tem permissão ?

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver RespostasVer no Discord

entao, mas eu estou mandando o certificado nessa requisiçao, é a unica que estou fazendo de pix

# devs
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

Você precisa mandar também o certificado em todas as requisições.

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

Não converta números monetários para float. Remova a vírgula e trate internamente como um número inteiro de centavos.

# devs
Avatar discord do usuario jonadabir

jonadabir

Ver RespostasVer no Discord

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;
};

# cartões
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

Taxa você precisa negociar com o @Comercial ...

# cartões
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver RespostasVer no Discord

As transações de cartão tem um outro mecanismo de notificação, aonde há um webhook para cada transação, diferente do Pix que é um webhook por chave Pix. Mas tem sim notificação.

# dúvidas
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver RespostasVer no Discord

Gera sim, ao criar retorna o campo pixCopiaECola você pode transformar ele em QrCode.

# pix
Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver RespostasVer no Discord

A requisição não esta enviado os campos corretos, um exemplo de envio seria esse aqui:

py

# encoding: utf-8

from efipay import EfiPay
from ...credentials import credentials

efi = EfiPay(credentials.CREDENTIALS)


params = {
'idEnvio': 1
}

body = {
'valor': '0.01',
'pagador': {
'chave': '' # Sua chave aqui
},
'favorecido': {
'chave': '' # Chave de quem vai receber aqui
}
}

response = efi.pix_send(params=params, body=body)
print(response)

Também informamos que é para habilitar o endpoint de Envio de Pix em produção, é necessário preencher [este formulário](https://www.cognitoforms.com/GerencianetPagamentos1/Formul%C3%A1rioDeSolicita%C3%A7%C3%A3oDePermiss%C3%A3oParaEnvioDeValoresPixViaAPI). Após o preenchimento, basta aguardar que entraremos em contato.

# cartões
Avatar discord do usuario edufaria7

edufaria7

Ver no Discord

Como conseguir taxa de cartão de 3.49% para checkout transparente?... na simulação que fiz estava 4.79% mais um valor fixo.

# pix
Avatar discord do usuario diogojunior.

diogojunior.

Ver no Discord

def enviar_pagamento_pix(chave_pix, valor):
try:
efi = EfiPay(credentials)

# Corpo da requisição para enviar um pagamento PIX
body = {
'valor': {
'original': valor # Valor da transferência
},
'chave': chave_pix, # Chave PIX do destinatário
'infoPagador': 'Pagamento pelos serviços prestados.' # Informação adicional
}

# Tentando diferentes métodos para enviar o pagamento PIX
response = None
if hasattr(efi, 'pix_send_payment'):
response = efi.pix_send_payment(body=body)
elif hasattr(efi, 'pix_transfer'):
response = efi.pix_transfer(body=body)
else:
raise AttributeError("Nenhum método encontrado para enviar pagamento PIX.")

print("Resposta da API:", response)

except Exception as e:
print(f"Erro ao enviar pagamento PIX: {e}")
sys.exit(1)

if __name__ == "__main__":
chave_pix, valor = obter_dados_usuario()
enviar_pagamento_pix(chave_pix, valor)

# pix
Avatar discord do usuario diogojunior.

diogojunior.

Ver no Discord

# encoding: utf-8

from efipay import EfiPay
import sys

# Configurações de credenciais
credentials = {
'client_id': '',
'client_secret': '',
'sandbox': False, # Altere para True se estiver usando o ambiente de sandbox
'certificate': r''
}

def obter_dados_usuario():
try:
chave_pix = input("Informe a chave PIX do destinatário: ")
valor = input("Informe o valor da transferência: ")

# Verificando se os valores informados são válidos
if not chave_pix:
raise ValueError("A chave PIX não pode ser vazia.")

# Substituir vírgula por ponto e converter para float
valor_float = float(valor.replace(',', '.'))

if valor_float <= 0:
raise ValueError("O valor deve ser um número positivo.")

return chave_pix, "{:.2f}".format(valor_float)
except ValueError as ve:
print(f"Erro de validação: {ve}")
sys.exit(1)