Histórico de mensagens em pix

EXIBINDO CONVERSAS RECENTES:

Data: 21/08/2024
Canal: pix
Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

Guilherme, nesse caso eu utilizo o .pem mesmo?

Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

Entendi...

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Entendido. Sem problemas.
O erro provavelmente está no certificado. O CURL não reconhece o caminho do certificado sendo uma URL como havia colocado. Você deve colocar o caminho para o certificado no local do servidor.
Exemplo:

php
$config = [
"certificado" => "../certificado.pem",
"clientid" => "Client_Id???",
"client_secret" => "Client_Secret???"
];

Avatar discord do usuario bruynn

bruynn

Ver Respostas

Oi João, tudo bem sim e Eu entendi que não existe uma API pronta para verificar se um CPF está registrado como chave Pix. Estou pensando em fazer um teste enviando R$ 0,50 para o CPF, para ver se ele está registrado. Você sabe se existe algum código ou API que eu possa usar para isso? Vou tentar pagar a tarifa de teste e ver se funciona

Avatar discord do usuario rodrigo_90439

rodrigo_90439

Eu estou tentando gerar o access_token, primeiro passo e nem consegui.
Depois vou seguir o restante.

Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

Tudo bem Guilherme.
Eu gostaria de utilizar o CURL mesmo, não quero utilizar o SDK em minha aplicação, tem como me ajudar?
$config = [
"certificado" => "certificado.pem",
"client_id" => "Client_Id???",
"client_secret" => "Client_Secret_???"
];

$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
//CURLOPT_URL => "https://pix-h.api.efipay.com.br/oauth/token",
CURLOPT_URL => "https://pagarcontas.api.efipay.com.br/v1/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "

";
echo $response;
echo "
";

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @rodrigo_90439! Bom dia! Tudo bem?
Recomendamos usar nossa SDK em PHP. Ela já possui os métodos preparados para seu sistema consumir.
No caso da API de pagamento de contas, você pode usar os exemplos disponibilizados: https://github.com/efipay/sdk-php-apis-efi/tree/main/examples/payments/billets

Avatar discord do usuario rodrigo_90439

rodrigo_90439

Ver Respostas

Bom dia pessoal, dei inicio na integração hoje em PHP com API Pix e API de pagamentos de contas.
Segui todos os passos, criei aplicação, gerei e converti o certificado e não retorna o access_token.
Retorna vazio e no Postman dá um erro.
Alguém poderia me ajudar nesse início?

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Bom dia, @bruynn, tudo bem?
Atualmente nós não fornecemos um endpoint que te permita consultar se um CPF é ou não uma chave Pix cadastrada. Uma forma de verificar isso atualmente seria tentando realizar um envio de Pix e caso dê sucesso, esta cadastrado como chave Pix, mas este processo te custaria o valor do envio + a tarifa mínima de R$ 0,50, não sendo uma solução viável para casos como este.

Avatar discord do usuario bruynn

bruynn

pode tirar o meu duvida

Avatar discord do usuario bruynn

bruynn

eu tentei varios nao deu certo

Avatar discord do usuario bruynn

bruynn

Ver Respostas

oi bom dia e queria aprender em api...

O sistema deve percorrer essa lista, verificando se cada CPF tem uma chave PIX vinculada.

O resultado desejado é algo assim:
- "CPF 000.000.000-00 tem chave PIX já cadastrada"
- ou "CPF 000.000.000-00 não tem chave PIX cadastrada

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

class Endpoints(object):

def __init__(self, options):
super(Endpoints, self).__init__()
self.token = None
self.options = options

def __getattr__(self, name):
print('PRINT ENDPOINT NAME -><><><>',name)
if name in Constants.APIS['PIX']['ENDPOINTS']:
self.endpoints = Constants.APIS['PIX']['ENDPOINTS']
self.urls = Constants.APIS['PIX']['URL']
elif name in Constants.APIS['OPEN-FINANCE']['ENDPOINTS']:
self.endpoints = Constants.APIS['OPEN-FINANCE']['ENDPOINTS']
self.urls = Constants.APIS['OPEN-FINANCE']['URL']
elif name in Constants.APIS['PAYMENTS']['ENDPOINTS']:
self.endpoints = Constants.APIS['PAYMENTS']['ENDPOINTS']
self.urls = Constants.APIS['PAYMENTS']['URL']
elif name in Constants.APIS['OPENING-ACCOUNTS']['ENDPOINTS']:
self.endpoints = Constants.APIS['OPENING-ACCOUNTS']['ENDPOINTS']
self.urls = Constants.APIS['OPENING-ACCOUNTS']['URL']
else:
self.endpoints = Constants.APIS['CHARGES']['ENDPOINTS']
self.urls = Constants.APIS['CHARGES']['URL']
self.options['certificate'] = None
print('Setting certificate to None')
self.get_url()
return partial( self.request, self.endpoints[name])

Avatar discord do usuario stoliarskiykostiantyn

stoliarskiykostiantyn

Ver Respostas

problem is that certificates is setting to none while im trying to call method pay_pix. When i call pay_pix method __getattr__ in class Endpoints is called with __iter__ as argument and this is setting certificate to None

Avatar discord do usuario aguiar.dev

aguiar.dev

Ver Respostas

like this: f"{os.getcwd()}/{config.EFI_CERTIFICATE}"

Avatar discord do usuario stoliarskiykostiantyn

stoliarskiykostiantyn

Ver Respostas

no its in controllers folder

Avatar discord do usuario aguiar.dev

aguiar.dev

Ver Respostas

@stoliarskiykostiantyn Is the class at the root of the project?

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!