Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emissão da 2° via do boleto 26/08/2024 Solicitação de merge da pre-master para a master #684

Merged
merged 7 commits into from
Aug 26, 2024
61 changes: 59 additions & 2 deletions html/contribuicao/doacao/model/emitirBoleto.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,65 @@ function gerarCodigoAleatorio($tamanho = 16)
if ($httpCode === 200 || $httpCode === 201) {
$responseData = json_decode($response, true);
$pdf_link = $responseData['charges'][0]['last_transaction']['pdf'];

//salva uma cópia do boleto para emissão de 2° via.

// Diretório onde os arquivos serão armazenados
$saveDir = '../../pdfs/';

// Verifica se o diretório existe, se não, cria o diretório
if (!is_dir($saveDir)) {
mkdir($saveDir, 0755, true);
}

$numeroAleatorio = gerarCodigoAleatorio();
$ultimaDataVencimento = $dataVencimento;
$ultimaDataVencimento = str_replace('-', '', $ultimaDataVencimento);
$nomeArquivo = $saveDir . $numeroAleatorio .'_'. $cpfSemMascara .'_'. $ultimaDataVencimento .'_'. $value . '.pdf';

// Inicia uma sessão cURL
$ch = curl_init($pdf_link);

// Configurações da sessão cURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, true);

// Executa a sessão cURL e obtém a resposta com cabeçalhos
$response = curl_exec($ch);

// Verifica se ocorreu algum erro durante a execução do cURL
if (curl_errno($ch)) {
echo json_encode('Erro ao baixar o arquivo.'); //. curl_error($ch) . PHP_EOL;
exit();
} else {
// Verifica o código de resposta HTTP
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($httpCode == 200) {
// Separa os cabeçalhos do corpo da resposta
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $headerSize);
$fileContent = substr($response, $headerSize);

// Verifica o tipo de conteúdo
if (strpos($headers, 'Content-Type: application/pdf') !== false) {
// Salva o conteúdo do arquivo no diretório especificado
file_put_contents($nomeArquivo, $fileContent);
//$arquivos []= $savePath;
} else {
//echo "Erro: O conteúdo da URL não é um PDF." . PHP_EOL;
}
} else {
echo json_encode("Erro ao baixar o arquivo: HTTP $httpCode");
exit();
}
}

// Fecha a sessão cURL
curl_close($ch);

//envia resposta para o front-end
echo json_encode(['link' => $pdf_link]);
} else {
echo json_encode(['Erro' => 'A API retornou o código de status HTTP ' . $httpCode]);
Expand All @@ -184,5 +243,3 @@ function gerarCodigoAleatorio($tamanho = 16)
}
}
}


12 changes: 12 additions & 0 deletions html/contribuicao/segunda_via/assets/css/segundaVia.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.hidden{
display: none;
}

.centralizar{
display: flex;
justify-content: center;
}

.label{
margin: 5px;
}
Loading