Histórico de mensagens sobre php em pix

EXIBINDO CONVERSAS RECENTES:

Texto: php
Canal: pix
Avatar discord do usuario clusterweb

clusterweb

Ver Respostas

@guilherme_efi esse plugin novo para o whmcs suporta php 8.2

Avatar discord do usuario guilherme_efi

guilherme_efi

Olá, @logaaaa. Bom dia! Tudo bem?
Nestes vídeos, foi usada a SDK antiga da Gerencianet. Recomendo já usar a SDK do Efí Bank. Você pode encontrar em: https://github.com/efipay/sdk-php-apis-efi
Os procedimentos de uso são semelhantes.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @leandroberg! Tudo bem?
Esse erro ocorre porque as definições do split não são enviadas no mesmo endpoint de criação da cobrança.

Aqui você encontra um fluxograma que explica o processo de emissão de cobrança Pix com split. Mas, de forma resumida, o processo é o seguinte:

1. Criar a configuração de split. Você pode criar essa configuração e reutilizá-la em várias cobranças. Então essa etapa pode ser feita um única vez.
2. Criar a cobrança Pix.
3. Vincular a cobrança Pix à configuração de split.

Nossa documentação técnica também traz mais detalhes sobre o processo.

Avatar discord do usuario leandroberg

leandroberg

Ver Respostas

Bom dia 😎 estou tentando configurar um split de pagamento porém estou tendo falha no retorno dizendo que meu JSON está inválido (Valores ou tipos de campo inválidos). Veja retorno:

{
"chave": "additionalProperties",
"caminho": ".body",
"mensagem": "não são permitidas propriedades adicionais"
}

Poderiam me ajudar? Segue anexo screenshot da minha chamada utilizando o SDK PHP da EFI atravez da cobrança imediata via PIX. Bem basicamente o que eu preciso no momento é reter 1% da transação em minha conta e enviar 99% para conta do cliente.
imagem enviada na mensagem pelo usuario leandroberg

Avatar discord do usuario he128

he128

Eu criei o servidor webhook com certificado configurado no virtual host do apache e o arquivo php no diretório e subdomínio apontado, quando gerar um pix aonde coloco a url de retorno dentro do json ou como cadastro a url do webhook, no mercadopago cada transação que faço informo a url de retorno em cada transação pix, só funciona via SDK ou posso fazer tudo com CURL ?

Avatar discord do usuario oziellcarvallho

oziellcarvallho

Ver Respostas

No momento só quero testar mesmo.
Eu estou usando o antigo SDK gerencianet PHP e estou definido x-skip-mtls-checking como true porem contuinua não funcionando

Avatar discord do usuario jjsandilsonsa

jjsandilsonsa

Ver Respostas

Estou usando a API pix: sdk-php-apis-efi

Avatar discord do usuario softvix

softvix

Ver Respostas

Estou usando o php 8.2.21

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Essa sdk é muito antiga. Ainda é a sdk utilizada no padrão Gerencianet. Sugiro você utilizar a sdk no padrão Efí, pois as outras não estamos trabalhando mais em atualizações. Provavelmente essa falha que esta surgindo seja algo relacionado à alguma biblioteca, versão do php....

Avatar discord do usuario softvix

softvix

Já fiz algumas alterações em options.php, mas ainda não consegui sucesso.

Avatar discord do usuario softvix

softvix

Deprecated: Creation of dynamic property Gerencianet\Endpoints::$options is deprecated in /home/faturasw/public_html/painel/gn-api-sdk/src/Gerencianet/Endpoints.php on line 17

Avatar discord do usuario guilhermecoelhoreal

guilhermecoelhoreal

Ver Respostas

Boa noite. Estou tentando implementer a API Pix no meu site com o meu conhecimento e ajuda do ChatGPT, mas está dando erro. Tenho o HTML, CSS, JS e PHP. Lembrando que não sou programador. Acho que estou perto de fazer funcionar. Alguém pode me ajudar?

Na pagina PHP o Access Token retorna corretamente, mas o pix copia e cola não. Está dando esse problema: Curl error: Empty reply from server

Avatar discord do usuario logaaaa

logaaaa

Ver Respostas

Boa tarde, estou usando o código de exemplo em PHP para cobrança imediata do PIX...
Me atentei ao card que explica sobre a inserção do Client_id e Client_Secret, Sandbox e a pasta e a conversão do certificado, no entanto, quanto rodo esse exemplo nos seguintes cenários, tenho retornos inesperados:

Produção: Ocorreu um erro - Mensagem: 401invalid_client - Credenciais inválidas ou inativas
Homologação : Gerou o QRCode e Chave Copia e Cola normalmente.

Servidor: Apache
Linguagem: PHP
BD: MySQL
SDK Composer Instalado
imagem enviada na mensagem pelo usuario logaaaa

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @vinicio254! Tudo bem?

Você pode usar o exemplo abaixo para registrar o webhook. Sobre a configuração do mTLS, você pode conferir este vídeo que ensina a configuração em servidor Apache.

php

$homolog = true; // false para produção

$config = [
"certificado" => realpath(__DIR__ . "/certificado.pem"), // certificado em .pem de produção ou homologação
"client_id" => "Client_Id",
"client_secret" => "Client_Secret"
];

$chavePix = "suachavepix";

$webhookUrl = "https://seudominio.com.br/webhook/hash=hashdeseguranca&ignorar="

$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? "https://pix-h.api.efipay.com.br/oauth/token" : "https://pix.api.efipay.com.br/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
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"
),
));
var_dump(curl_exec($curl));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);


//Criação da cobrança
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? "https://pix-h.api.efipay.com.br/v2/webhook/$chavePix" : "https://pix.api.efipay.com.br/v2/webhook/$chavePix"
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => '{
"webhookUrl": $webhookUrl
}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
"x-skip-mtls-checking: true",
"Content-Type: application/json"
),
));
$responsePix = json_decode(curl_exec($curl), true);
curl_close($curl);

echo '
' . json_encode($responsePix, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

Avatar discord do usuario vinicio254

vinicio254

estou utilizando php e até agora não consegui cadastrar o webhook usando curl , falta isso

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @roxzin! Como vai?
Aqui está um código que funciona:

php

$homolog = true; // false para produção

$config = [
"certificado" => realpath(__DIR__ . "/certificado.pem"), // certificado em .pem de produção ou homologação
"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 => $homolog ? "https://pix-h.api.efipay.com.br/oauth/token" : "https://pix.api.efipay.com.br/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
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"
),
));
var_dump(curl_exec($curl));
$returnAuth = json_decode(curl_exec($curl), true);
$access_token = $returnAuth['access_token'];
curl_close($curl);


//Criação da cobrança
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? 'https://pix-h.api.efipay.com.br/v2/cob/' : 'https://pix.api.efipay.com.br/v2/cob/',
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 => '{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "12345678909",
"nome": "Francisco da Silva"
},
"valor": {
"original": "0.45"
},
"chave": "[email protected]"
}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
"Content-Type: application/json"
),
));
$responsePix = json_decode(curl_exec($curl), true);
curl_close($curl);

echo '
' . json_encode($responsePix, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

if ($responsePix['loc']['id']) {
$idlocationPix = $responsePix['loc']['id'];

// Obtêm o Pix Copia e Cola e QR Code
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $homolog ? 'https://pix-h.api.efipay.com.br/v2/loc/' . $idlocationPix . '/qrcode' : 'https://pix.api.efipay.com.br/v2/loc/' . $idlocationPix . '/qrcode',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $access_token",
),
));

$response = json_decode(curl_exec($curl), true);

curl_close($curl);


$PixCopiaCola = $response['qrcode'];
$imagemQrcode = $response['imagemQrcode'];


echo 'QR Code:';
echo '
' . json_encode($PixCopiaCola, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

echo 'Imagem:
';
echo '';
}
Também temos nossa SDK de PHP (https://github.com/efipay/sdk-php-apis-efi), que usa o Guzzle.

Avatar discord do usuario roxzin

roxzin

Ver Respostas

Bom dia, alguem tem um codigo funcional em php usando curl apenas para gerar qrcode dinamico? tudo que encontro é desatualizo e nao funciona direito.

Avatar discord do usuario claudinei02368

claudinei02368

Ver Respostas

PHP 7.4.33, WordPress 6.6.1, woocommerce 9.2.3, EFI 2.3.0

Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Qual versão do PHP, Wordpress, Wocommerce e Plugin Efí você esta utilizando?