Histórico de mensagens sobre sandbox em pix

EXIBINDO CONVERSAS RECENTES:

Texto: sandbox
Canal: pix
Avatar discord do usuario aguiar.dev

aguiar.dev

But I believe you don't need to change this class. The code I sent above solved it for me. My implementation:

py
from efipay import EfiPay
from dotenv import dotenv_values
import os

env = dotenv_values(".env")

class EfiPayImpl():

def __init__(self) -> None:
credentials = {
"client_id": env["EFI_BANK_CLIENT_ID"],
"client_secret": env["EFI_BANK_CLIENT_SECRET"],
"sandbox": env["EFI_BANK_SANDBOX"],
"certificate": f"{os.getcwd()}/{env["EFI_BANK_CERTIFICATE"]}"
}
self.api = EfiPay(credentials)

Avatar discord do usuario stoliarskiykostiantyn

stoliarskiykostiantyn

Hi everyone! Could someone help me please! I'm trying to implement EfiPay to send payment to pix with such code from python sdk from github repo https://github.com/efipay/sdk-python-apis-efi

Code looks like this now:

class EfiClient:
EFI_FT_PIX_KEY: str
EFI_FT_PIX_WEBHOOK_URL: str
efi: EfiPay
creds: s.EfiCredentials

def configure(self, config: BaseConfig):
# Notion: Sandbox = False on prod machine
self.creds = s.EfiCredentials(
client_id=config.EFI_CLIENT_ID,
client_secret=config.EFI_CLIENT_SECRET,
sandbox=config.EFI_IS_SANDBOX,
certificate=config.EFI_CERTIFICATE,
)

self.efi = EfiPay(self.creds.model_dump())
self.EFI_FT_PIX_KEY = config.EFI_FT_PIX_KEY
self.EFI_FT_PIX_WEBHOOK_URL = config.EFI_FT_PIX_WEBHOOK_URL

And the toruble is that efipay class doesn't acceprt certificates, support told me to chage base_url BUT there no way to do it! Help please) Would be very grateful!

Avatar discord do usuario _acb09

_acb09

Ver Respostas

{
"certificate": "CAMINHO_ABSOLUTO/web\\certificates\\efipay\\homologacao-544374-cert.pem",
"clientId": "Client_Id_????",
"clientSecret": "Client_Secret_???",
"debug": false,
"pwdCertificate": "",
"responseHeaders": true,
"sandbox": true,
"timeout": 30,
"headers": {
"x-skip-mtls-checking": true
}
}

Avatar discord do usuario jacksonpietro

jacksonpietro

So no sandbox que ta mostrando

Avatar discord do usuario marilia_05972

marilia_05972

Ver Respostas

Olá, boa noite.
Eu estou fazendo uma integração usando o sdk (gn-api-sdk-typescript": "^2.0.1") , estou tomando um erro de Forbidden na chamada ao pixCreateImmediateCharge([], body) quando tento chamar em ambiente de produção (ou creds de prod). A única mensagem de retorno é essa, "forbidden".
Porém, quando uso credenciais de homologação, funciona perfeitamente, e quando mudo para as de produção, tomo essa exceção. Como a mensagem não está clara, eu não consegui decifrar o que pode ser.
Parâmetros corretos, sandbox=true quando homol, false quando prod, client_secret, client_id,
certificate corretos, chave pix informada corretamente.
Meu único vacilo, foi que não fiz o download do certificado de produção no ato em que ele foi gerado, então eu excluí e gerei outro. Poderia ser esse o problema? Caso positivo, o que eu tenho que fazer agora?
Também testei com o "sdk-typescript-apis-efi": "^1.0.2" e ocorre o mesmo cenário.

Avatar discord do usuario jacksoncypriano

jacksoncypriano

Ver Respostas

O meu retorno da consulta é esse:

{'parametros': {'inicio': '2024-06-10T12:01:51Z', 'fim': '2024-06-10T14:01:51Z', 'paginacao': {'paginaAtual': 0, 'itensPorPagina': 100, 'quantidadeDePaginas': 1, 'quantidadeTotalDeItens': 5}}, 'pix': [{'endToEndId': 'E09089356202406101350APIe2fce4e8', 'txid': '299dc29eadf34f24b557ab259696e813', 'valor': '5.99', 'chave': 'b21f6480-ae00-4a5f-b5e9-faf3bcbdd163', 'horario': '2024-06-10T13:50:22.000Z', 'infoPagador': 'Teste de pagamento em ambiente sandbox'}, {'endToEndId': 'E09089356202406101349API6f39c06e', 'txid': 'f6cd5fe6915c4d468d7bb44ed77f5442', 'valor': '5.99', 'chave': 'b21f6480-ae00-4a5f-b5e9-faf3bcbdd163', 'horario': '2024-06-10T13:49:45.000Z', 'infoPagador': 'Teste de pagamento em ambiente sandbox'}, {'endToEndId': 'E09089356202406101349API521a6420', 'txid': 'ace815e82daf4828ae8062e0e10e033c', 'valor': '5.99', 'chave': 'b21f6480-ae00-4a5f-b5e9-faf3bcbdd163', 'horario': '2024-06-10T13:49:30.000Z', 'infoPagador': 'Teste de pagamento em ambiente sandbox'}, {'endToEndId': 'E09089356202406101341APId7038956', 'txid': 'ce0892ed9a4d42ff989b223c394ac5c1', 'valor': '5.99', 'chave': 'b21f6480-ae00-4a5f-b5e9-faf3bcbdd163', 'horario': '2024-06-10T13:41:24.000Z', 'infoPagador': 'Teste de pagamento em ambiente sandbox'}, {'endToEndId': 'E09089356202406101340API45b01b82', 'txid': '3758673dc27447ad89e580fbc58d6a0a', 'valor': '5.99', 'chave': 'b21f6480-ae00-4a5f-b5e9-faf3bcbdd163', 'horario': '2024-06-10T13:40:27.000Z', 'infoPagador': 'Teste de pagamento em ambiente sandbox'}]}


E a requisição do PIX foi a da imagem
imagem enviada na mensagem pelo usuario jacksoncypriano

Avatar discord do usuario mesenga.

mesenga.

Ver Respostas

olá, consegui cadastrar a url usando pixConfigWebhook (sdk typescript), agora depois de gerar a cobrança e cadastrar o webhook recebo uma requisição na url cadastrada com o seguinte payload

DEFAULT 2024-05-30T16:03:39.462573Z /webhook payload: {
DEFAULT 2024-05-30T16:03:39.462585Z pix: [
DEFAULT 2024-05-30T16:03:39.462589Z {
DEFAULT 2024-05-30T16:03:39.462593Z endToEndId: 'E09089356202405301603API5d83da44',
DEFAULT 2024-05-30T16:03:39.462595Z txid: '89ddfba0723a4ef2b9ef5597381368aa',
DEFAULT 2024-05-30T16:03:39.462598Z chave: ,
DEFAULT 2024-05-30T16:03:39.462600Z valor: '4.00',
DEFAULT 2024-05-30T16:03:39.462602Z horario: '2024-05-30T16:03:09.000Z',
DEFAULT 2024-05-30T16:03:39.462605Z infoPagador: 'Teste de pagamento em ambiente sandbox'
DEFAULT 2024-05-30T16:03:39.462610Z }
DEFAULT 2024-05-30T16:03:39.462612Z ]
DEFAULT 2024-05-30T16:03:39.462615Z }

eu pensei que receberia o objeto com a propriedade status

alguém pode me ajudar a entender? grato

Avatar discord do usuario walissonsouza

walissonsouza

Ver Respostas

Bom dia @jessica_efi
Sim token de produção e sandbox false.
Acabei de criar uma nova aplicação e mesmo assim continua apresentando Forbidden.
Quando eu troco para o token de homologação e habilito o sandbox ele funciona, gera o QRcode certinho.

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Bom dia @walissonsouza ! Você está utilizando as credenciais e certificado de produção e o sandbox = false?

Avatar discord do usuario diogojunior.

diogojunior.

# 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)

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Oi, @gil.brandao0067. Bom dia!
Esta mudança que o João mencionou não altera na SDK. Você irá apenas incluir o __dirname junto com as credenciais para indicar o caminho absoluto para o certificado.
Exemplo:

js
module.exports = {
sandbox: false,
client_id: 'seu_client_id',
client_secret: 'seu_client_secret',
certificate: __dirname + '/caminho/ate/seu/certificado.p12',
};

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @pedrolucasneto! Tudo bem?
Mas no seu caso que está utilizando a SDK de Node, ela já trata de obter o token de autenticação e consumir o endpoint requerido. No exemplo que mandou, o método pixCreateImediateCharge cria a cobrança Pix.

Em sua implementação está usando Client_Id, Client_Secret e certificado de homologação? Pois de acordo com o parâmetro sandbox=true, deve ser usada as credenciais do ambiente de teste.

Avatar discord do usuario kaykyramos

kaykyramos

import as EfiPay from 'sdk-node-apis-efi'

import { Injectable } from '@nestjs/common'

import 'dotenv/config'

@Injectable()
export class PixService {
private efiPay = new EfiPay({
sandbox: false,
client_id: process.env.EFIPAY_CLIENT_ID,
client_secret: process.env.EFIPAY_CLIENT_SECRET,
certificate: './certs/producao-453290-LinkZap-v2.p12',
})

constructor() {
//
}

public async getBalance() {
const { saldo } = await this.efiPay.getAccountBalance()
return Number(saldo)
}

public async payPix(pixCode: string, amount: number) {
const balance = await this.getBalance()
if (balance < amount) {
throw new Error('Saldo insuficiente')
}

try {
const response = await this.efiPay.pixSend(
{ idEnvio: '01' },
{
valor: amount,
pagador: {
chave: 'a4c3dcd3-0005-454e-957f-df416a63c4ed',
},
favorecido: {
chave: pixCode,
},
},
)
return response
} catch (error) {
console.log(error)
}
}
}

Avatar discord do usuario rian2965

rian2965

Ver Respostas

opa, bom dia!
como faço para confirmar uma cob pix gerada no sandbox?
estou testando o envio de webhook, mas não sei como mudar o status da cobrança kk

Avatar discord do usuario davidgaleno

davidgaleno

Esqueci de trocar o Sandbox

Avatar discord do usuario schulzthegoat

schulzthegoat

Ver Respostas

Sim estamos utilizando a SDK do node e sandbox tá false e as credenciais estão conferidas.

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Você esta usando alguma SDK?
Alterou a flag sandbox e as credenciais (client_id e client_secret)?

Avatar discord do usuario andersonhsilva

andersonhsilva

Efi\EfiPay {#348 ▼ // routes/web.php:39
-requester: null
-endpoints: array:5 [▼
"CHARGES" => array:2 [▶]
"PIX" => array:2 [▼
"URL" => array:2 [▼
"production" => "https://pix.api.efipay.com.br"
"sandbox" => "https://pix-h.api.efipay.com.br"
]
"ENDPOINTS" => array:48 [▶]
]
"OPEN-FINANCE" => array:2 [▶]
"PAYMENTS" => array:2 [▶]
"OPENING-ACCOUNTS" => array:2 [▶]
]
-methods: null
-options: array:12 [▼
"sandbox" => true
"debug" => false
"cache" => true
"timeout" => 60
"clientId" => "xxxxxxxxx"
"clientSecret" => "xxxxxxxx"
"partnerToken" => null
"headers" => null
"baseUri" => null
"api" => null
"certificate" => false
"pwdCertificate" => ""
]
}

este é o retorno que estou tendo quando instacio a class EfiPay, acredito que deu certo, mas vou fazer mais testes

Avatar discord do usuario geovannisc

geovannisc

Ver Respostas

ja verifiquei se os certificados estão conseguindo ser acessados nesses locais, e estou fazendo as chamadas no o link de sandbox, se eu desabilitar a verificação do certificado consigo cadastrar a chave normalmente, e recebo um webhook avisando que foi cadastrado, mas quando habilito a verificação ele consegue concluir.
imagem enviada na mensagem pelo usuario geovannisc

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @geovannisc! Tudo bem?

Parece que o certificado utilizado está configurado para o ambiente sandbox, e isso pode causar uma falha 403 ao tentar cadastrar o webhook no ambiente de produção.

Outra possível causa para essa falha pode estar relacionada ao local onde o arquivo está armazenado. Se o caminho do arquivo contém espaços ou caracteres especiais, isso pode estar causando impacto na configuração e resultar na falha mencionada.

Para resolver esses problemas:
1 - Certifique-se de que está utilizando o certificado correto para o ambiente de produção, se aplicável. Verifique se o certificado está configurado corretamente para o ambiente em questão.
2 - Verifique o caminho do arquivo do certificado e certifique-se de que não há espaços ou caracteres especiais que possam causar problemas na configuração. Renomeie o arquivo ou mova-o para um local sem espaços ou caracteres especiais, se necessário.

Ao resolver essas questões, você poderá evitar a falha 403 e garantir uma configuração adequada do webhook.