primeiro commit
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
commit
abaef69b98
3 files changed
+677
No files matched your search
+75
@@ -0,0 +1,75 @@
|
||||
BEGIN:VCARD
|
||||
VERSION:2.1
|
||||
N:Martins;Dr.;Rodrigo;;
|
||||
FN:Dr. Rodrigo Martins
|
||||
TEL;CELL:+5563981174175
|
||||
EMAIL;X-E-mail:rodrigo@martinsevieira.adv.br
|
||||
ORG:Martins & Vieira
|
||||
TITLE:Advogado
|
||||
URL:https://www.martinsevieira.adv.br
|
||||
URL:https://bio.martinsevieira.adv.br
|
||||
PHOTO;ENCODING=BASE64;JPEG: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
|
||||
g6opDTTTWRY0000A0000A0000A0000A0000A0000B//Z
|
||||
|
||||
END:VCARD
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
+602
@@ -0,0 +1,602 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pt-BR">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Martins & Vieira - Advocacia Especializada</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow-x: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Background animado com gradiente */
|
||||
body::before {
|
||||
content: '';
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(45deg, #20337b, #1a2a5e, #2d4a9e, #1e3470, #20337b);
|
||||
background-size: 400% 400%;
|
||||
animation: gradientAnimation 15s ease infinite;
|
||||
z-index: -2;
|
||||
}
|
||||
|
||||
@keyframes gradientAnimation {
|
||||
0% { background-position: 0% 50%; }
|
||||
50% { background-position: 100% 50%; }
|
||||
100% { background-position: 0% 50%; }
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 500px;
|
||||
width: 95%;
|
||||
padding: 20px 15px;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin: 0 auto 15px;
|
||||
background-image: url('fotos/logo.png');
|
||||
background-size: 80%;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
border-radius: 50%;
|
||||
border: 3px solid rgba(255, 255, 255, 0.3);
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
|
||||
background-color: rgba(255, 255, 255, 0.95);
|
||||
}
|
||||
|
||||
.header {
|
||||
color: white;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 1.8em;
|
||||
margin-bottom: 5px;
|
||||
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.header p {
|
||||
font-size: 0.9em;
|
||||
color: #e0e0e0;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 2px;
|
||||
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
/* Botão Salvar na Agenda */
|
||||
.save-contact {
|
||||
display: inline-block;
|
||||
padding: 12px 30px;
|
||||
background: linear-gradient(135deg, #20337b, #2d4a9e);
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
border-radius: 50px;
|
||||
font-size: 0.95em;
|
||||
font-weight: bold;
|
||||
margin-bottom: 25px;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.save-contact:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
|
||||
background: linear-gradient(135deg, #2d4a9e, #20337b);
|
||||
}
|
||||
|
||||
/* Container de ícones */
|
||||
.icons-row {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 15px;
|
||||
margin-bottom: 20px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.icon-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.icon-item:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
.icon-box {
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 12px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
border: 2px solid rgba(255, 255, 255, 0.2);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.icon-item:hover .icon-box {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-color: rgba(255, 255, 255, 0.4);
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.icon-box svg {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
fill: white;
|
||||
}
|
||||
|
||||
.icon-label {
|
||||
font-size: 0.75em;
|
||||
font-weight: 500;
|
||||
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
/* Botão PIX */
|
||||
.pix-button {
|
||||
display: inline-block;
|
||||
padding: 12px 30px;
|
||||
background: linear-gradient(135deg, #32BCAD, #00A86B);
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
border-radius: 50px;
|
||||
font-size: 0.95em;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.pix-button:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
|
||||
background: linear-gradient(135deg, #00A86B, #32BCAD);
|
||||
}
|
||||
|
||||
/* Modal PIX */
|
||||
.modal {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
z-index: 1000;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.modal.active {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: white;
|
||||
padding: 30px;
|
||||
border-radius: 20px;
|
||||
max-width: 400px;
|
||||
width: 90%;
|
||||
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
color: #20337b;
|
||||
font-size: 1.8em;
|
||||
margin-bottom: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.modal-input {
|
||||
width: 100%;
|
||||
padding: 15px;
|
||||
font-size: 1.2em;
|
||||
border: 2px solid #20337b;
|
||||
border-radius: 10px;
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.modal-buttons {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.modal-button {
|
||||
flex: 1;
|
||||
padding: 15px;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.modal-button.generate {
|
||||
background: linear-gradient(135deg, #32BCAD, #00A86B);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.modal-button.cancel {
|
||||
background: #ccc;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.modal-button:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.pix-code-area {
|
||||
display: none;
|
||||
margin-top: 20px;
|
||||
padding: 15px;
|
||||
background: #f5f5f5;
|
||||
border-radius: 10px;
|
||||
word-break: break-all;
|
||||
font-family: monospace;
|
||||
font-size: 0.9em;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.pix-code-area.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.copy-notification {
|
||||
margin-top: 10px;
|
||||
color: #00A86B;
|
||||
font-weight: bold;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.copy-notification.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Ícones pequenos */
|
||||
.small-icons {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 12px;
|
||||
margin-top: 20px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.small-icon {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
transition: all 0.3s ease;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.small-icon:hover {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.small-icon svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
fill: white;
|
||||
}
|
||||
|
||||
/* Responsividade */
|
||||
@media (max-width: 600px) {
|
||||
.header h1 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.header p {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.icon-box {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.icon-box svg {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
.icon-label {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="logo"></div>
|
||||
|
||||
<div class="header">
|
||||
<h1>Martins & Vieira</h1>
|
||||
<p>Advocacia Especializada</p>
|
||||
</div>
|
||||
|
||||
<a href="contato.vcf" class="save-contact" download>📇 Salvar na Agenda</a>
|
||||
|
||||
<!-- Primeira linha de ícones -->
|
||||
<div class="icons-row">
|
||||
<a href="https://wa.me/5563981174175?text=Ol%C3%A1%20Martins%20%26%20Vieira%2C%20gostaria%20de%20obter%20mais%20informa%C3%A7%C3%B5es" target="_blank" class="icon-item">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="icon-label">WhatsApp</span>
|
||||
</a>
|
||||
|
||||
<a href="tel:+5563981174175" class="icon-item">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="icon-label">Ligar</span>
|
||||
</a>
|
||||
|
||||
<a href="https://www.martinsevieira.adv.br" target="_blank" class="icon-item">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="icon-label">Site</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Segunda linha de ícones -->
|
||||
<div class="icons-row">
|
||||
<a href="https://www.instagram.com/rodrigosm_adv" target="_blank" class="icon-item">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6m9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8 1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="icon-label">Instagram</span>
|
||||
</a>
|
||||
|
||||
<a href="https://www.facebook.com/profile.php?id=61564304790750" target="_blank" class="icon-item">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="icon-label">Facebook</span>
|
||||
</a>
|
||||
|
||||
<a href="https://advx.martinsevieira.adv.br/public/provas/upload" target="_blank" class="icon-item">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9 16h6v-6h4l-7-7-7 7h4v6zm-4 2h14v2H5v-2z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="icon-label">Enviar Provas</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Botão PIX -->
|
||||
<button class="pix-button" onclick="openPixModal()">💳 Pagar com PIX</button>
|
||||
|
||||
<!-- Ícones pequenos -->
|
||||
<div class="small-icons">
|
||||
<a href="mailto:rodrigo@martinsevieira.adv.br" class="small-icon" title="E-mail">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://cloud.martinsevieira.adv.br" target="_blank" class="small-icon" title="Cloud">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://advx.martinsevieira.adv.br" target="_blank" class="small-icon" title="Sistema">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://chat.martinsevieira.adv.br" target="_blank" class="small-icon" title="Chat">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal PIX -->
|
||||
<div class="modal" id="pixModal">
|
||||
<div class="modal-content">
|
||||
<h2 class="modal-header">Pagamento PIX</h2>
|
||||
<input type="number" class="modal-input" id="pixValue" placeholder="Digite o valor (R$)" step="0.01" min="0.01">
|
||||
<div class="modal-buttons">
|
||||
<button class="modal-button cancel" onclick="closePixModal()">Cancelar</button>
|
||||
<button class="modal-button generate" onclick="generatePix()">Gerar PIX</button>
|
||||
</div>
|
||||
<div class="pix-code-area" id="pixCodeArea"></div>
|
||||
<div class="copy-notification" id="copyNotification">✓ Código copiado!</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function openPixModal() {
|
||||
document.getElementById('pixModal').classList.add('active');
|
||||
document.getElementById('pixValue').focus();
|
||||
}
|
||||
|
||||
function closePixModal() {
|
||||
document.getElementById('pixModal').classList.remove('active');
|
||||
document.getElementById('pixValue').value = '';
|
||||
document.getElementById('pixCodeArea').classList.remove('active');
|
||||
document.getElementById('copyNotification').classList.remove('active');
|
||||
}
|
||||
|
||||
function generatePix() {
|
||||
const value = parseFloat(document.getElementById('pixValue').value);
|
||||
|
||||
if (!value || value <= 0) {
|
||||
alert('Por favor, digite um valor válido');
|
||||
return;
|
||||
}
|
||||
|
||||
// Gera código PIX EMV (padrão brasileiro)
|
||||
const pixKey = 'financeiro@martinsevieira.adv.br';
|
||||
const merchantName = 'MARTINS E VIEIRA';
|
||||
const city = 'PALMAS';
|
||||
const txid = 'PAGAMENTO' + Date.now().toString().slice(-10);
|
||||
|
||||
// Formata o valor com 2 casas decimais
|
||||
const formattedValue = value.toFixed(2);
|
||||
|
||||
// Constrói o código PIX Copia e Cola (EMV)
|
||||
const pixCode = buildPixCode(pixKey, merchantName, city, formattedValue, txid);
|
||||
|
||||
// Exibe o código
|
||||
document.getElementById('pixCodeArea').textContent = pixCode;
|
||||
document.getElementById('pixCodeArea').classList.add('active');
|
||||
|
||||
// Copia automaticamente
|
||||
copyToClipboard(pixCode);
|
||||
}
|
||||
|
||||
function buildPixCode(pixKey, merchantName, city, value, txid) {
|
||||
// Função auxiliar para criar campo EMV
|
||||
function emvField(id, value) {
|
||||
const length = value.length.toString().padStart(2, '0');
|
||||
return id + length + value;
|
||||
}
|
||||
|
||||
// Monta a chave PIX
|
||||
const merchantAccountInfo = emvField('00', 'BR.GOV.BCB.PIX') + emvField('01', pixKey);
|
||||
|
||||
let emv = '';
|
||||
emv += emvField('00', '01'); // Payload Format Indicator
|
||||
emv += emvField('26', merchantAccountInfo); // Merchant Account Information
|
||||
emv += emvField('52', '0000'); // Merchant Category Code
|
||||
emv += emvField('53', '986'); // Transaction Currency (986 = BRL)
|
||||
emv += emvField('54', value); // Transaction Amount
|
||||
emv += emvField('58', 'BR'); // Country Code
|
||||
emv += emvField('59', merchantName); // Merchant Name
|
||||
emv += emvField('60', city); // Merchant City
|
||||
emv += emvField('62', emvField('05', txid)); // Additional Data Field
|
||||
|
||||
// Calcula CRC16
|
||||
emv += '6304';
|
||||
const crc = crc16(emv);
|
||||
emv += crc;
|
||||
|
||||
return emv;
|
||||
}
|
||||
|
||||
function crc16(str) {
|
||||
let crc = 0xFFFF;
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
crc ^= str.charCodeAt(i) << 8;
|
||||
for (let j = 0; j < 8; j++) {
|
||||
if (crc & 0x8000) {
|
||||
crc = (crc << 1) ^ 0x1021;
|
||||
} else {
|
||||
crc = crc << 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (crc & 0xFFFF).toString(16).toUpperCase().padStart(4, '0');
|
||||
}
|
||||
|
||||
function copyToClipboard(text) {
|
||||
// Usa a API moderna de clipboard
|
||||
if (navigator.clipboard && navigator.clipboard.writeText) {
|
||||
navigator.clipboard.writeText(text).then(() => {
|
||||
showCopyNotification();
|
||||
}).catch(err => {
|
||||
// Fallback para método antigo
|
||||
fallbackCopy(text);
|
||||
});
|
||||
} else {
|
||||
fallbackCopy(text);
|
||||
}
|
||||
}
|
||||
|
||||
function fallbackCopy(text) {
|
||||
const textarea = document.createElement('textarea');
|
||||
textarea.value = text;
|
||||
textarea.style.position = 'fixed';
|
||||
textarea.style.opacity = '0';
|
||||
document.body.appendChild(textarea);
|
||||
textarea.select();
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
showCopyNotification();
|
||||
} catch (err) {
|
||||
alert('Erro ao copiar. Por favor, copie manualmente.');
|
||||
}
|
||||
document.body.removeChild(textarea);
|
||||
}
|
||||
|
||||
function showCopyNotification() {
|
||||
const notification = document.getElementById('copyNotification');
|
||||
notification.classList.add('active');
|
||||
setTimeout(() => {
|
||||
notification.classList.remove('active');
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
// Fecha modal ao clicar fora
|
||||
document.getElementById('pixModal').addEventListener('click', function(e) {
|
||||
if (e.target === this) {
|
||||
closePixModal();
|
||||
}
|
||||
});
|
||||
|
||||
// Permite gerar PIX ao pressionar Enter
|
||||
document.getElementById('pixValue').addEventListener('keypress', function(e) {
|
||||
if (e.key === 'Enter') {
|
||||
generatePix();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user