Termos mais procurados:
Termos mais procurados:
O ambiente de homologação tem uma CA diferente para usar na configuracão de mTLS...
Em uma VPS você tem a liberdade de alterar as configurações do Apache para configurar o mTLS.
Vou iniciar um atendimento para lhe dar mais detalhes.
Olá, @felipenunes0714. Infelizmente, não fizemos testes para configurar o mTLS com ReactPHP, então não temos esse conteúdo disponível
perdão, deixa eu reformular minha pergunta, no tutorial no canal da efipay é utilizado um servidor ubumtu para poder configurar o mtls no webhook, não existe uma forma mais prática só com php?
Bom dia, @excarplex_27431! Tudo bem?
1. Para configurar um split de pagamento em uma cobrança Pix, você precisará seguir alguns passos específicos e utilizar os endpoints adequados da API. Aqui está um resumo das informações para te orientar:
1.1. Configuração do Split de Pagamento:
Primeiro, é necessário criar uma configuração de split. Isso é feito através do endpoint específico para configuração de split, disponível aqui. Esta configuração pode ser reutilizada em múltiplas cobranças Pix, o que facilita o processo se você tiver uma estrutura de split recorrente.
1.2. Criação da Cobrança Pix:
Após configurar o split, o próximo passo é criar a cobrança Pix. Isso pode ser feito de duas maneiras, dependendo do tipo de cobrança:
1.2.1. Cobrança Imediata: Utilize o endpoint para criar uma cobrança imediata com um TXID, disponível aqui.
1.2.2Cobrança com Vencimento: Se a cobrança tiver vencimento, utilize este endpoint.
1.3. Associação da Configuração de Split à Cobrança Pix:
Com a cobrança Pix criada, você precisará associar a configuração de split à cobrança. Isso é feito através do endpoint específico para vinculação de cobrança com split, disponível aqui.
Além disso, para melhor compreensão do processo de split de pagamento, você pode consultar o fluxograma disponível neste link.
2. O Split de pagamento Pix só pode ser realizado entre contas Efí, com limite máximo de 20 contas para o repasse.
3. Para configurar o webhook, você precisará fazer isso através de uma requisição HTTP utilizando o endpoint específico fornecido pela Efí. Esse processo envolve associar uma chave Pix registrada na sua conta Efí, que é a mesma chave que será utilizada na criação da cobrança, à URL de retorno da sua aplicação.
Você pode seguir o passo a passo detalhado na nossa documentação sobre webhooks. Lá, você encontrará o endpoint que deve ser utilizado para essa configuração.
Além disso, é essencial que você configure o mTLS (Mutual TLS) no seu servidor web para garantir que a comunicação siga os padrões de segurança estabelecidos. Mais detalhes sobre essa configuração podem ser encontrados na seção sobre mTLS na nossa documentação.
Se precisar de mais ajuda, conte com a gente!
Consegue. Em nossa documentação na seção Skip-mTLS, você encontra essa informação.
{
"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
}
}
Boa tarde!
Estou recebendo o seguinte erro ao criar um webhook de pix:
{
"code": 400,
"error": "json_invalido",
"errorDescription": "Parâmetro \".headers['x-skip-mtls-checking']\", deve ser igual a um dos valores predefinidos"
}
Estou usando o SDK, e todos endpoints funcionam (cartão, pix e boleto) porém não consigo gerar o webhook. Ou recebo o erro acima, ou recebo Curl 52 Error.
Que tipo de servidor você utiliza e como você esta tentando fazer a configuração do mTLS?
Você configurou o mTLS eu seu servidor?
Boa noite @felipenunes0714! Tudo bem? Você configurou o mTLS em seu servidor?
400
json_invalido
Parâmetro ".headers['x-skip-mtls-checking']", deve ser igual a um dos valores predefinidos
$options["headers"] = [
"x-skip-mtls-checking" => false
];
me retornou o seguinte erro:
400
json_invalido
Parâmetro ".headers['x-skip-mtls-checking']", deve ser igual a um dos valores predefinidos
{
"Server": [
"nginx"
],
"Date": [
"Tue, 06 Aug 2024 18:59:18 GMT"
],
"Content-Type": [
"application/json; charset=utf-8"
],
"Content-Length": [
"241"
],
"Connection": [
"keep-alive"
],
"x-request-id": [
"xxxx"
],
"Vary": [
"Origin"
],
"Access-Control-Allow-Credentials": [
"true"
],
"ETag": [
"xxx""
]
}
/
Detailed endpoint documentation
https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix
/
$autoload = realpath(__DIR__ . "../../../../../../../vendor/autoload.php");
if (!file_exists($autoload)) {
die("Autoload file not found or on path $autoload
.");
}
require_once $autoload;
use Efi\Exception\EfiException;
use Efi\EfiPay;
$optionsFile = __DIR__ . "/../../credentials/options.php";
if (!file_exists($optionsFile)) {
die("Options file not found or on path $options
.");
}
$options = include $optionsFile;
$options["headers"] = [
"x-skip-mtls-checking" => false
];
$params = [
"chave" => ""
];
$body = [
"webhookUrl" => ""
];
try {
$api = new EfiPay($options);
$response = $api->pixConfigWebhook($params, $body);
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($response->body, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
print_r("" . json_encode($response->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
} else {
print_r("" . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (EfiException $e) {
print_r($e->code . "
");
print_r($e->error . "
");
print_r($e->errorDescription) . "
";
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($e->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (Exception $e) {
print_r($e->getMessage());
}
/
Detailed endpoint documentation
https://dev.efipay.com.br/docs/api-pix/webhooks#configurar-o-webhook-pix
/
$autoload = realpath(__DIR__ . "/../../../vendor/autoload.php");
if (!file_exists($autoload)) {
die("Autoload file not found or on path $autoload
.");
}
require_once $autoload;
use Efi\Exception\EfiException;
use Efi\EfiPay;
$optionsFile = __DIR__ . "/../../credentials/options.php";
if (!file_exists($optionsFile)) {
die("Options file not found or on path $options
.");
}
$options = include $optionsFile;
$options["headers"] = [
"x-skip-mtls-checking" => false
];
$params = [
"chave" => "12345"
];
$body = [
"webhookUrl" => "www.meulink.com"
];
try {
$api = new EfiPay($options);
$response = $api->pixConfigWebhook($params, $body);
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($response->body, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
print_r("" . json_encode($response->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
} else {
print_r("" . json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (EfiException $e) {
print_r($e->code . "
");
print_r($e->error . "
");
print_r($e->errorDescription) . "
";
if (isset($options["responseHeaders"]) && $options["responseHeaders"]) {
print_r("" . json_encode($e->headers, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "
");
}
} catch (Exception $e) {
print_r($e->getMessage());
}
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?
Nesse caso você provavelmente não irá conseguir configurar o mTLS, para contornar isso você pode seguir estes passos descritos aqui