From df2a760062b4c9824ee04e6f1d3ffe4ea9c67c07 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Wed, 31 Jul 2024 10:38:26 -0300 Subject: [PATCH 1/6] =?UTF-8?q?Pagamento=20Pix=20vers=C3=A3o=20inicial?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/contribuicao/pix/css/style.css | 48 +++++++ html/contribuicao/pix/paymant_form.html | 43 ++++++ html/contribuicao/pix/process_payment.php | 151 ++++++++++++++++++++++ 3 files changed, 242 insertions(+) create mode 100644 html/contribuicao/pix/css/style.css create mode 100644 html/contribuicao/pix/paymant_form.html create mode 100644 html/contribuicao/pix/process_payment.php diff --git a/html/contribuicao/pix/css/style.css b/html/contribuicao/pix/css/style.css new file mode 100644 index 00000000..1020b5ae --- /dev/null +++ b/html/contribuicao/pix/css/style.css @@ -0,0 +1,48 @@ +body { + font-family: Arial, sans-serif; + background-color: #f5f5f5; + padding: 20px; +} + +.container-formulario { + background-color: #fff; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + max-width: 400px; + margin: 0 auto; +} + +.h1-formulario { + text-align: center; + margin-bottom: 20px; +} + +.form-group { + margin-bottom: 15px; +} + +.label-formulario { + display: block; + margin-bottom: 5px; +} + +.input-formulario { + width: 95%; + padding: 8px; + border: 1px solid #ccc; + border-radius: 4px; +} + +.button-formulario { + background-color: #007BFF; + color: white; + padding: 10px; + border: none; + border-radius: 4px; + cursor: pointer; +} + +.button-formulario:hover { + background-color: #0056b3; +} diff --git a/html/contribuicao/pix/paymant_form.html b/html/contribuicao/pix/paymant_form.html new file mode 100644 index 00000000..5d205896 --- /dev/null +++ b/html/contribuicao/pix/paymant_form.html @@ -0,0 +1,43 @@ + + + + + + + + + + Pagamento PIX + + + +
+

Formulário de Pagamento PIX

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ + \ No newline at end of file diff --git a/html/contribuicao/pix/process_payment.php b/html/contribuicao/pix/process_payment.php new file mode 100644 index 00000000..80399444 --- /dev/null +++ b/html/contribuicao/pix/process_payment.php @@ -0,0 +1,151 @@ + [ + [ + 'amount' => intval($amount * 100), + 'description' => $description, + 'quantity' => 1 + ] + ], + 'customer' => [ + 'name' => $name, + 'email' => $email, + 'type' => 'individual', + 'document' => $document, + 'phones' => [ + 'mobile_phone' => [ + 'country_code' => '55', + 'area_code' => substr($phone, 0, 2), + 'number' => substr($phone, 2) + ] + ], + ], + 'payments' => [ + [ + 'payment_method' => 'pix', + 'pix' => [ + 'expires_in' => $expires_in, + 'additional_information' => [ + [ + 'name' => 'Teste', + 'value' => '1' + ] + ] + ] + ] + ] + ]; + + // Converte os dados para JSON + $jsonData = json_encode($data); + + // Inicia a requisição cURL + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); + + $response = curl_exec($ch); + + // Verifica por erros no cURL + if (curl_errno($ch)) { + echo 'Erro na requisição: ' . curl_error($ch); + curl_close($ch); + exit; + } + + // Obtém o código de status HTTP + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + + // Fecha a conexão cURL + curl_close($ch); + + // Verifica o código de status HTTP + if ($httpCode === 200 || $httpCode === 201) { + $responseData = json_decode($response, true); + + } else { + echo 'Erro: A API retornou o código de status HTTP ' . $httpCode . '
'; + // Verifica se há mensagens de erro na resposta JSON + $responseData = json_decode($response, true); + if (isset($responseData['errors'])) { + echo 'Detalhes do erro:'; + foreach ($responseData['errors'] as $error) { + echo '
- ' . htmlspecialchars($error['message']); + } + } + } + + // Exibe informações do cliente + +/* echo '
';
+        print_r($responseData);
+        echo '
'; */ + + /* echo 'Informações do cliente:
'; + echo 'Nome: ' . htmlspecialchars($responseData['customer']['name']) . '
'; + echo 'E-mail: ' . htmlspecialchars($responseData['customer']['email']) . '
'; + echo 'CPF/CNPJ: ' . formatCPF($responseData['customer']['document']) . '
'; + echo 'Telefone: ' . htmlspecialchars($responseData['customer']['phones']['mobile_phone']['country_code']) . ' (' . htmlspecialchars($responseData['customer']['phones']['mobile_phone']['area_code']) . ') ' . htmlspecialchars($responseData['customer']['phones']['mobile_phone']['number']) . '
'; + echo 'Valor da transferência: R$ ' . number_format($amount, 2, ',', '.') . '
'; */ + + //Verifica se o status é 'pending' + if ($responseData['status'] === 'pending') { + // Gera um qr_code + $qr_code_url = $responseData['charges'][0]['last_transaction']['qr_code_url']; + //echo 'URL: ' . $qr_code_url; + $qr_code = file_get_contents($qr_code_url); + + // Exibe a imagem do QR code + echo ''; + } else { + echo "Houve um erro ao gerar o QR CODE de pagamento. Verifique se as informações fornecidas são válidas."; + } + + // Caso a transação for realizada, envia uma mensagem de sucesso. + if($responseData['status'] === 'paid'){ + echo "Transação realizada com sucesso."; + } +} +?> \ No newline at end of file From 17311b023e89b546050740db6a208448f761e71a Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Thu, 1 Aug 2024 09:01:18 -0300 Subject: [PATCH 2/6] =?UTF-8?q?Cria=C3=A7=C3=A3o=20de=20p=C3=A1gina=20para?= =?UTF-8?q?=20doa=C3=A7=C3=B5es=20em=20formato=20PIX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/contribuicao/doacao/index.php | 2 +- html/contribuicao/index.php | 1 + html/contribuicao/js/cadastroSocio.js | 466 ++++++++--------- html/contribuicao/js/geraboleto.js | 14 +- html/contribuicao/js/verificar.js | 4 +- html/contribuicao/mensalidade/index.php | 2 +- html/contribuicao/pix/index.php | 495 ++++++++++++++++++ html/contribuicao/pix/model/emitirQRCode.php | 1 + .../pix/{ => model}/process_payment.php | 13 +- html/contribuicao/pix/paymant_form.html | 2 +- 10 files changed, 751 insertions(+), 249 deletions(-) create mode 100644 html/contribuicao/pix/index.php create mode 100644 html/contribuicao/pix/model/emitirQRCode.php rename html/contribuicao/pix/{ => model}/process_payment.php (89%) diff --git a/html/contribuicao/doacao/index.php b/html/contribuicao/doacao/index.php index 58e70dc4..209fa03d 100644 --- a/html/contribuicao/doacao/index.php +++ b/html/contribuicao/doacao/index.php @@ -126,7 +126,7 @@ - +
diff --git a/html/contribuicao/index.php b/html/contribuicao/index.php index cf526651..ab5d9889 100644 --- a/html/contribuicao/index.php +++ b/html/contribuicao/index.php @@ -82,6 +82,7 @@ Boleto Único Carnê de Mensalidades + PIX
diff --git a/html/contribuicao/js/cadastroSocio.js b/html/contribuicao/js/cadastroSocio.js index 4a161c17..062a5499 100755 --- a/html/contribuicao/js/cadastroSocio.js +++ b/html/contribuicao/js/cadastroSocio.js @@ -1,112 +1,114 @@ //Neste código estão as funções para: verificar se há documento referente ao sócio doador cadastrado no Banco de Dados, editar as informações do sócio no Banco de Dados caso já haja cadastro, e cadastrar um novo sócio caso seja a primeira vez de sua doação. Estão aqui também algumas funções complementares para: verificar a data de vencimento da doação e o tipo de sócio contribuinte. -function doc_cadastrado() -{ - if($("#op_cpf").prop('checked')) - { - var doc = $("#dcpf").val(); - }else{ - doc = $("#dcnpj").val(); - } +function doc_cadastrado() { + if ($("#op_cpf").prop('checked')) { + var doc = $("#dcpf").val(); + } else { + doc = $("#dcnpj").val(); + } cpf_cnpj(doc); - + } -function socio_cadastrado(doc) -{ +function socio_cadastrado(doc) { var doc = doc; doc = formata_cpf_cnpj(doc); - $.post("../php/socioCadastrado.php", {'doc':doc}).done(function(data){ - console.log("Data agora: ", typeof(data)); - if(data == 0 || data.includes("false")) - { - $("#verifica_socio_btn").hide(); - $("#verifica_socio").hide(); + $.post("../php/socioCadastrado.php", { 'doc': doc }).done(function (data) { + console.log("Data agora: ", typeof (data)); + if (data == 0 || data.includes("false")) { + $("#verifica_socio_btn").hide(); + $("#verifica_socio").hide(); + $("#pag2").fadeIn(); + } else { + + var dados = JSON.parse(data); + + if (dados[0] == "SEM_ENDERECO") { + console.log('Alguma informação de endereço está faltando.'); + + $("#verifica_socio").hide(); + $("#form2").hide(); + $("#pag2").fadeIn(); + $("#avanca3").hide(); + $("#salvar_infos").fadeIn(); + + $("#salvar_infos").click(function () { editar_informacoes(); }); + + } else { + var data_n = dados.data_nascimento; + + if (data_n == null) { + dataDia = '00'; + dataMes = '00'; + dataAno = '0000'; + } else { + data_n = data_n.split("-"); + dataDia = data_n[2]; + dataMes = data_n[1]; + dataAno = data_n[0]; + } + + + $("#nome").val(dados.nome); + $("#cnpj_nome").val(dados.nome); + $("#dia_n").val(dataDia); + $("#mes").val(dataMes); + $("#ano").val(dataAno); + $("#telefone").val(dados.telefone); + $("#email").val(dados.email); + $("#cep").val(dados.cep); + $("#rua").val(dados.logradouro); + $("#numero").val(dados.numero_endereco); + $("#complemento").val(dados.complemento); + $("#bairro").val(dados.bairro); + $("#localidade").val(dados.cidade); + $("#uf").val(dados.estado); + console.log("Dados1 : ", dados); + $("#verifica_socio").hide(); + $("#pag2").hide(); + $("#pag3").hide(); + $("#form2").fadeIn(); + + const formaContribuicao = $("#forma-contribuicao").val(); + + if (formaContribuicao == 'pix') { + $("#form2").html('

Obrigado por contribuir mais uma vez, ' + dados.nome + '!


Clique em "EMITIR QRCODE" e aguarde o redirecionamento.
'); + + $("#emitir_qrcode").click(function () { geraFormaContribuicao(); }); + } else { + $("#form2").html('

Obrigado por contribuir mais uma vez, ' + dados.nome + '!


Clique em "GERAR BOLETO" e aguarde o redirecionamento.
'); + + $("#gerar_boleto").click(function () { geraFormaContribuicao(); }); + } + + $("#editar_infos").click(function () { + + $("#form2").hide(); $("#pag2").fadeIn(); - }else - { - - var dados = JSON.parse(data); - - if(dados[0] == "SEM_ENDERECO"){ - console.log('Alguma informação de endereço está faltando.'); - - $("#verifica_socio").hide(); - $("#form2").hide(); - $("#pag2").fadeIn(); - $("#avanca3").hide(); - $("#salvar_infos").fadeIn(); - - $("#salvar_infos").click(function(){ editar_informacoes();}); - - }else{ - var data_n = dados.data_nascimento; - - if(data_n == null) - { - dataDia = '00'; - dataMes = '00'; - dataAno = '0000'; - }else{ - data_n = data_n.split("-"); - dataDia = data_n[2]; - dataMes = data_n[1]; - dataAno = data_n[0]; - } - - - $("#nome").val(dados.nome); - $("#cnpj_nome").val(dados.nome); - $("#dia_n").val(dataDia); - $("#mes").val(dataMes); - $("#ano").val(dataAno); - $("#telefone").val(dados.telefone); - $("#email").val(dados.email); - $("#cep").val(dados.cep); - $("#rua").val(dados.logradouro); - $("#numero").val(dados.numero_endereco); - $("#complemento").val(dados.complemento); - $("#bairro").val(dados.bairro); - $("#localidade").val(dados.cidade); - $("#uf").val(dados.estado); - console.log("Dados1 : ", dados); - $("#verifica_socio").hide(); - $("#pag2").hide(); - $("#pag3").hide(); - $("#form2").fadeIn(); - $("#form2").html('

Obrigado por contribuir mais uma vez, '+dados.nome+'!


Clique em "GERAR BOLETO" e aguarde o redirecionamento.
'); - - $("#gerar_boleto").click(function(){geraBoletoNovo();}); - $("#editar_infos").click(function(){ - - $("#form2").hide(); - $("#pag2").fadeIn(); - $("#avanca3").hide(); - $("#salvar_infos").fadeIn(); - }); - $("#salvar_infos").click(function(){ editar_informacoes();}); - } - - - } - }); + $("#avanca3").hide(); + $("#salvar_infos").fadeIn(); + }); + $("#salvar_infos").click(function () { editar_informacoes(); }); + } + + + } + }); } -function editar_informacoes() -{ +function editar_informacoes() { let tipoPessoa; - if($("#op_cpf").prop('checked')) - { + if ($("#op_cpf").prop('checked')) { var doc = $("#dcpf").val(); tipoPessoa = "fisica"; - }else{ + } else { doc = $("#dcnpj").val(); tipoPessoa = "juridica"; } var nome = $("#nome").val(); var cnpj_nome = $("#cnpj_nome").val(); - var data_n = $("#ano").val()+"-"+$("#mes").val()+"-"+$("#dia_n").val(); + var data_n = $("#ano").val() + "-" + $("#mes").val() + "-" + $("#dia_n").val(); var tel = $("#telefone").val(); var email = $("#email").val(); var cep = $("#cep").val(); @@ -116,100 +118,106 @@ function editar_informacoes() var bairro = $("#bairro").val(); var cidade = $("#localidade").val(); var uf = $("#uf").val(); - if(nome == ''){ + if (nome == '') { nome = cnpj_nome; } - console.log("Tipo Pessoa: "+tipoPessoa); + console.log("Tipo Pessoa: " + tipoPessoa); //console.log("Dados2 : ", dados); - $.post("../php/editaSocio.php",{'nome':nome, 'telefone':tel, 'email':email, 'doc':doc, 'datanascimento':data_n, 'cep': cep, 'log':rua, 'numero':numero, 'comp':compl, 'bairro':bairro, 'cidade':cidade, 'uf':uf, 'tipoPessoa':tipoPessoa}).done(function(data){ - $("#form2").fadeIn(); - $("#form2").html('

Dados atualizados com sucesso!



OK
') - $("#pag3").hide(); - $("#dados_atualizados").click(function(){$("#form2").html('

Obrigado por contribuir mais uma vez, '+nome+'!


Clique em "GERAR BOLETO" e aguarde o redirecionamento.
'); - $("#gerar_boleto").click(function(){geraBoletoNovo();}); - $("#editar_infos").click(function(){ - - $("#form2").hide(); - $("#pag2").fadeIn(); - $("#avanca3").hide(); - $("#salvar_infos").fadeIn(); - }); - $("#salvar_infos").click(function(){ editar_informacoes();}); - }); - - }); - -} -function cadastra_socio() -{ - - var id_sociotipo = tipoSocioNovo(); - - var horadata = new Date(); - var horaAtual = horadata.getHours(); - var minutoAtual = horadata.getMinutes(); - var hora = horaAtual+":"+minutoAtual; - if($("#tipo1").prop('checked')) - { - var valor_contribuicao = $("#vm").val(); - - } - else - { - valor_contribuicao = $("#v").val(); + $.post("../php/editaSocio.php", { 'nome': nome, 'telefone': tel, 'email': email, 'doc': doc, 'datanascimento': data_n, 'cep': cep, 'log': rua, 'numero': numero, 'comp': compl, 'bairro': bairro, 'cidade': cidade, 'uf': uf, 'tipoPessoa': tipoPessoa }).done(function (data) { + $("#form2").fadeIn(); + $("#form2").html('

Dados atualizados com sucesso!



OK
') + $("#pag3").hide(); + $("#dados_atualizados").click(function () { + + const formaContribuicao = $("#forma-contribuicao").val(); + + if(formaContribuicao == "pix"){ + $("#form2").html('

Obrigado por contribuir mais uma vez, ' + nome + '!


Clique em "EMITIR QRCODE" e aguarde o redirecionamento.
'); + $("#emitir_qrcode").click(function () { geraFormaContribuicao(); }); + }else{ + $("#form2").html('

Obrigado por contribuir mais uma vez, ' + nome + '!


Clique em "GERAR BOLETO" e aguarde o redirecionamento.
'); + $("#gerar_boleto").click(function () { geraFormaContribuicao(); }); } - var data_vencimento = dataVencimento(); - - - var email = $("#email").val(); - var telefone = $("#telefone").val(); - var cep = $("#cep").val(); - var log = $("#rua").val(); - var bairro = $("#bairro").val(); - var cidade = $("#localidade").val(); - var uf = $("#uf").val(); - var num = $("#numero").val(); - var comp = $("#complemento").val(); - var sistema = $("#id_sistema").val(); - var status = 0; - - if($("#op_cpf").prop('checked')) - { - var nome = $("#nome").val(); - var sobrenome = $("#sbnome").val(); - var fisjur = $("#op_cpf").val(); - var dia = $("#dia_n").val(); - var mes = $("#mes").val(); - var ano = $("#ano").val(); - var doc = $("#dcpf").val(); - doc = formata_cpf_cnpj(doc); - var dataN = ano.concat("-",mes,"-",dia); - - $.post("../php/cadastrarSocio.php", {'tipo':fisjur, 'nome':nome, 'sobrenome': sobrenome, 'telefone':telefone, 'cep':cep, 'log':log, 'comp':comp, 'bairro':bairro, 'cidade':cidade, 'uf':uf, 'numero': num, 'doc':doc,'datanascimento':dataN, 'hora':hora, 'sistema':sistema, 'contato':email, 'id_sociotipo': id_sociotipo, 'status': status, 'datavencimento':data_vencimento, 'valor_doacao':valor_contribuicao}).done(function(data){console.log(data) - geraBoletoNovo(); + + $("#editar_infos").click(function () { + + $("#form2").hide(); + $("#pag2").fadeIn(); + $("#avanca3").hide(); + $("#salvar_infos").fadeIn(); + }); + $("#salvar_infos").click(function () { editar_informacoes(); }); + }); + }); - +} +function cadastra_socio() { + + var id_sociotipo = tipoSocioNovo(); + + var horadata = new Date(); + var horaAtual = horadata.getHours(); + var minutoAtual = horadata.getMinutes(); + var hora = horaAtual + ":" + minutoAtual; + if ($("#tipo1").prop('checked')) { + var valor_contribuicao = $("#vm").val(); + } - else - { - nome = $("#cnpj_nome").val(); - sobrenome = "NULL"; - fisjur = $("#op_cnpj").val(); - doc = $("#dcnpj").val(); - doc = formata_cpf_cnpj(doc); - dataN = "0000-00-00" - - $.post("../php/cadastrarSocio.php", {'tipo':fisjur, 'nome':nome, 'sobrenome':sobrenome, 'telefone':telefone, 'cep':cep, 'log':log, 'comp':comp, 'bairro':bairro, 'cidade':cidade, 'uf':uf, 'numero': num, 'doc':doc,'datanascimento':dataN, 'hora':hora, 'sistema':sistema, 'contato':email, 'id_sociotipo': id_sociotipo, 'status': status, 'datavencimento':data_vencimento, 'valor_doacao':valor_contribuicao}).done(function(data){console.log(data); - geraBoletoNovo(); - }); - - + else { + valor_contribuicao = $("#v").val(); + } + var data_vencimento = dataVencimento(); + + + var email = $("#email").val(); + var telefone = $("#telefone").val(); + var cep = $("#cep").val(); + var log = $("#rua").val(); + var bairro = $("#bairro").val(); + var cidade = $("#localidade").val(); + var uf = $("#uf").val(); + var num = $("#numero").val(); + var comp = $("#complemento").val(); + var sistema = $("#id_sistema").val(); + var status = 0; + + if ($("#op_cpf").prop('checked')) { + var nome = $("#nome").val(); + var sobrenome = $("#sbnome").val(); + var fisjur = $("#op_cpf").val(); + var dia = $("#dia_n").val(); + var mes = $("#mes").val(); + var ano = $("#ano").val(); + var doc = $("#dcpf").val(); + doc = formata_cpf_cnpj(doc); + var dataN = ano.concat("-", mes, "-", dia); + + $.post("../php/cadastrarSocio.php", { 'tipo': fisjur, 'nome': nome, 'sobrenome': sobrenome, 'telefone': telefone, 'cep': cep, 'log': log, 'comp': comp, 'bairro': bairro, 'cidade': cidade, 'uf': uf, 'numero': num, 'doc': doc, 'datanascimento': dataN, 'hora': hora, 'sistema': sistema, 'contato': email, 'id_sociotipo': id_sociotipo, 'status': status, 'datavencimento': data_vencimento, 'valor_doacao': valor_contribuicao }).done(function (data) { + console.log(data) + geraFormaContribuicao(); + }); + + + } + else { + nome = $("#cnpj_nome").val(); + sobrenome = "NULL"; + fisjur = $("#op_cnpj").val(); + doc = $("#dcnpj").val(); + doc = formata_cpf_cnpj(doc); + dataN = "0000-00-00" + + $.post("../php/cadastrarSocio.php", { 'tipo': fisjur, 'nome': nome, 'sobrenome': sobrenome, 'telefone': telefone, 'cep': cep, 'log': log, 'comp': comp, 'bairro': bairro, 'cidade': cidade, 'uf': uf, 'numero': num, 'doc': doc, 'datanascimento': dataN, 'hora': hora, 'sistema': sistema, 'contato': email, 'id_sociotipo': id_sociotipo, 'status': status, 'datavencimento': data_vencimento, 'valor_doacao': valor_contribuicao }).done(function (data) { + console.log(data); + geraFormaContribuicao(); + }); + + } } -function cad_log(socioTipo, reference) -{ +function cad_log(socioTipo, reference) { var id_sistema = $("#id_sistema").val(); var reference = reference; @@ -217,85 +225,75 @@ function cad_log(socioTipo, reference) var horadata = new Date(); var horaAtual = horadata.getHours(); var minutoAtual = horadata.getMinutes(); - var hora = horaAtual+":"+minutoAtual; - if($("#tipo1").prop('checked')) - { - var valor_contribuicao = $("#vm").val(); - - } - else - { - valor_contribuicao = $("#v").val(); - } - var data_vencimento = dataVencimento(); - var email = $("#email").val(); - if($("#op_cpf").prop('checked')) - { + var hora = horaAtual + ":" + minutoAtual; + if ($("#tipo1").prop('checked')) { + var valor_contribuicao = $("#vm").val(); + + } + else { + valor_contribuicao = $("#v").val(); + } + var data_vencimento = dataVencimento(); + var email = $("#email").val(); + if ($("#op_cpf").prop('checked')) { var doc = $("#dcpf").val(); - }else{ + } else { doc = $("#dcnpj").val(); } - $.post("./php/cadastroLog.php",{'hora':hora, 'valor_doacao':valor_contribuicao, 'dataV':data_vencimento, 'email':email, 'doc':doc, 'sistema':id_sistema, 'socioTipo': socioTipo, 'referencia':reference}).done(function(data){console.log(data);}); + $.post("./php/cadastroLog.php", { 'hora': hora, 'valor_doacao': valor_contribuicao, 'dataV': data_vencimento, 'email': email, 'doc': doc, 'sistema': id_sistema, 'socioTipo': socioTipo, 'referencia': reference }).done(function (data) { console.log(data); }); } -function dataVencimento() -{ - var now = new Date; - var diaA = now.getDate(); - var dia = retorna_dia(); - if(dia == diaA) - { - dia = now.getDate()+3; - } - - if(diaR$"+val_min+""); return; } - if((boletoCarne == "carne") && (qtdParcelas < 1 || isNaN(qtdParcelas) || qtdParcelas > 12)){ + if((formaContribuicao == "carne") && (qtdParcelas < 1 || isNaN(qtdParcelas) || qtdParcelas > 12)){ $("#avisa_parcelas").html("A quantidade de parcelas de um carnê deve ser um número entre 1 e 12."); return; } diff --git a/html/contribuicao/mensalidade/index.php b/html/contribuicao/mensalidade/index.php index e7759b3f..24db53ea 100644 --- a/html/contribuicao/mensalidade/index.php +++ b/html/contribuicao/mensalidade/index.php @@ -126,7 +126,7 @@ - +
diff --git a/html/contribuicao/pix/index.php b/html/contribuicao/pix/index.php new file mode 100644 index 00000000..6cc4c8c2 --- /dev/null +++ b/html/contribuicao/pix/index.php @@ -0,0 +1,495 @@ + + + + + + Seja um Sócio Contribuidor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + +
+ +
+ +
+ Digite um valor + + + +

+
+ +
+ +
+ +
+
+ +
+ +

+ +
+ Digite um documento CPF* + +
+ +
+ Digite um documento CNPJ * + +
+
+ +
+
+ +
+
+ +
+

INFORMAÇÕES PESSOAIS


+ +
+ NOME COMPLETO * + +
+ +
+ NOME * + +
+ +
+ DATA DE NASCIMENTO *
+ + + + + +
+ +
+ TELEFONE * + +
+ +
+ E-mail* + +

+
+ +

+

+ +
+
+ +
+ +
+ +
+ +
+ +
+

ENDEREÇO


+
+ CEP * + +
+
+ LOGRADOURO * + +
+
+ NÚMERO * + +
+
+ COMPLEMENTO + +
+
+ BAIRRO * + +
+
+ CIDADE * + +
+
+ ESTADO * +
+
+ +

+ +

+ +
+ +
+
+ + + SALVAR INFORMAÇÕES + +
+
+ +
+
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/html/contribuicao/pix/model/emitirQRCode.php b/html/contribuicao/pix/model/emitirQRCode.php new file mode 100644 index 00000000..b3d9bbc7 --- /dev/null +++ b/html/contribuicao/pix/model/emitirQRCode.php @@ -0,0 +1 @@ + [ [ 'amount' => intval($amount * 100), 'description' => $description, - 'quantity' => 1 + 'quantity' => 1, //Adicionar o envio do parâmetro code abaixo ] ], 'customer' => [ @@ -138,13 +141,13 @@ function formatCPF($cpf) { $qr_code = file_get_contents($qr_code_url); // Exibe a imagem do QR code - echo ''; + echo '';//invés de exibir a imagem, enviar o QRcode em base64 via JSON para o front-end } else { echo "Houve um erro ao gerar o QR CODE de pagamento. Verifique se as informações fornecidas são válidas."; } // Caso a transação for realizada, envia uma mensagem de sucesso. - if($responseData['status'] === 'paid'){ + if($responseData['status'] === 'paid'){//Considerar remoção echo "Transação realizada com sucesso."; } } diff --git a/html/contribuicao/pix/paymant_form.html b/html/contribuicao/pix/paymant_form.html index 5d205896..cd4d899b 100644 --- a/html/contribuicao/pix/paymant_form.html +++ b/html/contribuicao/pix/paymant_form.html @@ -7,7 +7,7 @@ - Pagamento PIX + Pagamento PIX From b9022da423ad04fb079e745bcde19ee1d0fc604b Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Thu, 1 Aug 2024 10:36:33 -0300 Subject: [PATCH 3/6] =?UTF-8?q?Implementa=C3=A7=C3=A3o=20do=20arquivo=20em?= =?UTF-8?q?itirQRCode.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doacao/model/emitirBoleto.php | 2 +- html/contribuicao/js/geraboleto.js | 9 +- html/contribuicao/mensalidade/model/carne.php | 2 +- html/contribuicao/pix/css/style.css | 48 ----- html/contribuicao/pix/model/emitirQRCode.php | 173 ++++++++++++++++++ .../pix/model/process_payment.php | 154 ---------------- html/contribuicao/pix/paymant_form.html | 43 ----- 7 files changed, 180 insertions(+), 251 deletions(-) delete mode 100644 html/contribuicao/pix/css/style.css delete mode 100644 html/contribuicao/pix/model/process_payment.php delete mode 100644 html/contribuicao/pix/paymant_form.html diff --git a/html/contribuicao/doacao/model/emitirBoleto.php b/html/contribuicao/doacao/model/emitirBoleto.php index 0ef351aa..262eb5a2 100755 --- a/html/contribuicao/doacao/model/emitirBoleto.php +++ b/html/contribuicao/doacao/model/emitirBoleto.php @@ -184,4 +184,4 @@ function gerarCodigoAleatorio($tamanho = 16) } } -echo json_encode(['boletoLink' => $pdf_link]); +echo json_encode(['link' => $pdf_link]); diff --git a/html/contribuicao/js/geraboleto.js b/html/contribuicao/js/geraboleto.js index 911ceaa2..f6773e2f 100755 --- a/html/contribuicao/js/geraboleto.js +++ b/html/contribuicao/js/geraboleto.js @@ -73,6 +73,7 @@ function geraFormaContribuicao(){ // Desativar o clique no span $('#gerar_boleto').addClass('disabled'); $('#avanca3').addClass('disabled'); + $('#emitir_qrcode').addClass('disabled'); $.post(url, { @@ -82,12 +83,12 @@ function geraFormaContribuicao(){ "dia": dia }).done(function(r){ const resposta = JSON.parse(r); - if(resposta.boletoLink){ - console.log(resposta.boletoLink); + if(resposta.link){ + console.log(resposta.link); // Redirecionar o usuário para o link do boleto em uma nova aba - window.open(resposta.boletoLink, '_blank'); + window.open(resposta.link, '_blank'); }else{ - alert("Ops! Ocorreu um problema na geração do seu boleto, tente novamente, se o erro persistir contate o suporte."); + alert("Ops! Ocorreu um problema na geração da sua forma de pagamento, tente novamente, se o erro persistir contate o suporte."); } }); } diff --git a/html/contribuicao/mensalidade/model/carne.php b/html/contribuicao/mensalidade/model/carne.php index 1f1ef12b..95c0ef0b 100755 --- a/html/contribuicao/mensalidade/model/carne.php +++ b/html/contribuicao/mensalidade/model/carne.php @@ -385,7 +385,7 @@ function removeDirectory($dir) { $pdf_link = WWW.'html/contribuicao/pdfs/'.$numeroAleatorio.'_'.$cpfSemMascara.'_'.$ultimaDataVencimento.'_'.$value.'.pdf'; if($pdf_link){ - echo json_encode(['boletoLink' => $pdf_link]); + echo json_encode(['link' => $pdf_link]); }else{ echo json_encode('Não foi possível guardar o PDF gerado.'); } \ No newline at end of file diff --git a/html/contribuicao/pix/css/style.css b/html/contribuicao/pix/css/style.css deleted file mode 100644 index 1020b5ae..00000000 --- a/html/contribuicao/pix/css/style.css +++ /dev/null @@ -1,48 +0,0 @@ -body { - font-family: Arial, sans-serif; - background-color: #f5f5f5; - padding: 20px; -} - -.container-formulario { - background-color: #fff; - padding: 20px; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - max-width: 400px; - margin: 0 auto; -} - -.h1-formulario { - text-align: center; - margin-bottom: 20px; -} - -.form-group { - margin-bottom: 15px; -} - -.label-formulario { - display: block; - margin-bottom: 5px; -} - -.input-formulario { - width: 95%; - padding: 8px; - border: 1px solid #ccc; - border-radius: 4px; -} - -.button-formulario { - background-color: #007BFF; - color: white; - padding: 10px; - border: none; - border-radius: 4px; - cursor: pointer; -} - -.button-formulario:hover { - background-color: #0056b3; -} diff --git a/html/contribuicao/pix/model/emitirQRCode.php b/html/contribuicao/pix/model/emitirQRCode.php index b3d9bbc7..b14eb142 100644 --- a/html/contribuicao/pix/model/emitirQRCode.php +++ b/html/contribuicao/pix/model/emitirQRCode.php @@ -1 +1,174 @@ pdo; + +try { + + $req = $stmt->prepare("SELECT pessoa.id_pessoa, pessoa.nome, pessoa.telefone, pessoa.cep, pessoa.estado, pessoa.cidade, pessoa.bairro, pessoa.complemento, pessoa.numero_endereco, pessoa.logradouro, socio.id_pessoa, socio.email FROM pessoa, socio WHERE pessoa.id_pessoa = socio.id_pessoa AND pessoa.cpf=:cpf;"); + $req->bindParam(":cpf", $cpf); + $req->execute(); + $arrayBd = $req->fetch(PDO::FETCH_ASSOC); + //Verificação para validar se o banco de dados retornou algo ou se a resposta está vazia. + if (!empty($arrayBd)) { + $nome = $arrayBd['nome']; + $telefone = preg_replace('/\D/', '', $arrayBd['telefone']); + $email = $arrayBd['email']; + $estado = $arrayBd['estado']; + $cidade = $arrayBd['cidade']; + $bairro = $arrayBd['bairro']; + $complemento = $arrayBd['complemento']; + $cep = $arrayBd['cep']; + $n_ender = $arrayBd['numero_endereco']; + $logradouro = $arrayBd['logradouro']; + } else { + http_response_code(400); + exit('Não foi possível encontrar um sócio cadastrado com o CPF/CNPJ informado, por favor tente novamente.'); + } +} catch (PDOException $e) { + die("Erro: Não foi possível buscar o sócio no BD" . $e->getMessage() . "."); +} + +$value = intval($_POST["valor"]); + +$regras = $stmt->query("SELECT dbr.min_boleto_uni FROM doacao_boleto_regras AS dbr JOIN doacao_boleto_info AS dbi ON (dbr.id = dbi.id_regras)"); +$regras = $regras->fetch(PDO::FETCH_ASSOC); + +if ($value < $regras['min_boleto_uni']) { + echo json_encode('O valor para uma doação está abaixo do mínimo requerido.'); + exit(); +} + +try { + $req = $stmt->prepare("SELECT doacao_boleto_info.api, doacao_boleto_info.token_api FROM doacao_boleto_info WHERE 1;"); + $req->execute(); + $arrayBd = $req->fetchAll(PDO::FETCH_ASSOC)[0]; + $apiKey = $arrayBd['token_api']; + $url = $arrayBd['api']; +} catch (PDOException $e) { + die("Erro: Não foi possível buscar a venda no BD" . $e->getMessage() . "."); +} + +// Configuração dos dados para a API +$description = 'Doação'; +$expires_in = 3600; + +$headers = [ + 'Authorization: Basic ' . base64_encode($apiKey . ':'), + `uri: $url`, + 'Content-Type: application/json;charset=UTF-8' +]; + +//Configura os dados a serem enviados + +//gerar um número aleatório para o parâmetro code +$code = gerarCodigoAleatorio(); +$data = [ + 'items' => [ + [ + 'amount' => intval($value * 100), + 'description' => $description, + 'quantity' => 1, + "code" => $code + ] + ], + 'customer' => [ + 'name' => $nome, + 'email' => $email, + 'type' => 'individual', + 'document' => $cpfSemMascara, + 'phones' => [ + 'mobile_phone' => [ + 'country_code' => '55', + 'area_code' => substr($telefone, 0, 2), + 'number' => substr($telefone, 2) + ] + ], + ], + 'payments' => [ + [ + 'payment_method' => 'pix', + 'pix' => [ + 'expires_in' => $expires_in, + 'additional_information' => [ + [ + 'name' => 'Teste', + 'value' => '1' + ] + ] + ] + ] + ] +]; + +// Converte os dados para JSON +$jsonData = json_encode($data); + +// Inicia a requisição cURL +$ch = curl_init(); +curl_setopt($ch, CURLOPT_URL, $url); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +curl_setopt($ch, CURLOPT_POST, true); +curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); +curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); + +$response = curl_exec($ch); + +// Verifica por erros no cURL +if (curl_errno($ch)) { + echo json_encode('Erro na requisição: ' . curl_error($ch)); + curl_close($ch); + exit; +} + +// Obtém o código de status HTTP +$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + +// Fecha a conexão cURL +curl_close($ch); + +// Verifica o código de status HTTP +if ($httpCode === 200 || $httpCode === 201) { + $responseData = json_decode($response, true); +} else { + echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode); + // Verifica se há mensagens de erro na resposta JSON + $responseData = json_decode($response, true); + if (isset($responseData['errors'])) { + //echo 'Detalhes do erro:'; + foreach ($responseData['errors'] as $error) { + //echo '
- ' . htmlspecialchars($error['message']); + } + } +} + +//Verifica se o status é 'pending' +if ($responseData['status'] === 'pending') { + // Gera um qr_code + $qr_code_url = $responseData['charges'][0]['last_transaction']['qr_code_url']; + //envia o link da url + echo json_encode(['link' => $qr_code_url]); +} else { + echo json_encode("Houve um erro ao gerar o QR CODE de pagamento. Verifique se as informações fornecidas são válidas."); +} diff --git a/html/contribuicao/pix/model/process_payment.php b/html/contribuicao/pix/model/process_payment.php deleted file mode 100644 index ccda811c..00000000 --- a/html/contribuicao/pix/model/process_payment.php +++ /dev/null @@ -1,154 +0,0 @@ - [ - [ - 'amount' => intval($amount * 100), - 'description' => $description, - 'quantity' => 1, //Adicionar o envio do parâmetro code abaixo - ] - ], - 'customer' => [ - 'name' => $name, - 'email' => $email, - 'type' => 'individual', - 'document' => $document, - 'phones' => [ - 'mobile_phone' => [ - 'country_code' => '55', - 'area_code' => substr($phone, 0, 2), - 'number' => substr($phone, 2) - ] - ], - ], - 'payments' => [ - [ - 'payment_method' => 'pix', - 'pix' => [ - 'expires_in' => $expires_in, - 'additional_information' => [ - [ - 'name' => 'Teste', - 'value' => '1' - ] - ] - ] - ] - ] - ]; - - // Converte os dados para JSON - $jsonData = json_encode($data); - - // Inicia a requisição cURL - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); - curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); - - $response = curl_exec($ch); - - // Verifica por erros no cURL - if (curl_errno($ch)) { - echo 'Erro na requisição: ' . curl_error($ch); - curl_close($ch); - exit; - } - - // Obtém o código de status HTTP - $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - - // Fecha a conexão cURL - curl_close($ch); - - // Verifica o código de status HTTP - if ($httpCode === 200 || $httpCode === 201) { - $responseData = json_decode($response, true); - - } else { - echo 'Erro: A API retornou o código de status HTTP ' . $httpCode . '
'; - // Verifica se há mensagens de erro na resposta JSON - $responseData = json_decode($response, true); - if (isset($responseData['errors'])) { - echo 'Detalhes do erro:'; - foreach ($responseData['errors'] as $error) { - echo '
- ' . htmlspecialchars($error['message']); - } - } - } - - // Exibe informações do cliente - -/* echo '
';
-        print_r($responseData);
-        echo '
'; */ - - /* echo 'Informações do cliente:
'; - echo 'Nome: ' . htmlspecialchars($responseData['customer']['name']) . '
'; - echo 'E-mail: ' . htmlspecialchars($responseData['customer']['email']) . '
'; - echo 'CPF/CNPJ: ' . formatCPF($responseData['customer']['document']) . '
'; - echo 'Telefone: ' . htmlspecialchars($responseData['customer']['phones']['mobile_phone']['country_code']) . ' (' . htmlspecialchars($responseData['customer']['phones']['mobile_phone']['area_code']) . ') ' . htmlspecialchars($responseData['customer']['phones']['mobile_phone']['number']) . '
'; - echo 'Valor da transferência: R$ ' . number_format($amount, 2, ',', '.') . '
'; */ - - //Verifica se o status é 'pending' - if ($responseData['status'] === 'pending') { - // Gera um qr_code - $qr_code_url = $responseData['charges'][0]['last_transaction']['qr_code_url']; - //echo 'URL: ' . $qr_code_url; - $qr_code = file_get_contents($qr_code_url); - - // Exibe a imagem do QR code - echo '';//invés de exibir a imagem, enviar o QRcode em base64 via JSON para o front-end - } else { - echo "Houve um erro ao gerar o QR CODE de pagamento. Verifique se as informações fornecidas são válidas."; - } - - // Caso a transação for realizada, envia uma mensagem de sucesso. - if($responseData['status'] === 'paid'){//Considerar remoção - echo "Transação realizada com sucesso."; - } -} -?> \ No newline at end of file diff --git a/html/contribuicao/pix/paymant_form.html b/html/contribuicao/pix/paymant_form.html deleted file mode 100644 index cd4d899b..00000000 --- a/html/contribuicao/pix/paymant_form.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - Pagamento PIX - - - -
-

Formulário de Pagamento PIX

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
-
- - \ No newline at end of file From 58f17728e4743f862c6b6bf885de3dba87026ef6 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Fri, 2 Aug 2024 09:33:04 -0300 Subject: [PATCH 4/6] =?UTF-8?q?Mudan=C3=A7a=20no=20texto=20do=20bot=C3=A3o?= =?UTF-8?q?=20de=20'EMITIR=20QRCODE'=20para=20'GERAR=20QRCODE'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/contribuicao/js/cadastroSocio.js | 4 ++-- html/contribuicao/pix/index.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/html/contribuicao/js/cadastroSocio.js b/html/contribuicao/js/cadastroSocio.js index 062a5499..5c2ca632 100755 --- a/html/contribuicao/js/cadastroSocio.js +++ b/html/contribuicao/js/cadastroSocio.js @@ -73,7 +73,7 @@ function socio_cadastrado(doc) { const formaContribuicao = $("#forma-contribuicao").val(); if (formaContribuicao == 'pix') { - $("#form2").html('

Obrigado por contribuir mais uma vez, ' + dados.nome + '!


Clique em "EMITIR QRCODE" e aguarde o redirecionamento.
'); + $("#form2").html('

Obrigado por contribuir mais uma vez, ' + dados.nome + '!


Clique em "GERAR QRCODE" e aguarde o redirecionamento.
'); $("#emitir_qrcode").click(function () { geraFormaContribuicao(); }); } else { @@ -132,7 +132,7 @@ function editar_informacoes() { const formaContribuicao = $("#forma-contribuicao").val(); if(formaContribuicao == "pix"){ - $("#form2").html('

Obrigado por contribuir mais uma vez, ' + nome + '!


Clique em "EMITIR QRCODE" e aguarde o redirecionamento.
'); + $("#form2").html('

Obrigado por contribuir mais uma vez, ' + nome + '!


Clique em "GERAR QRCODE" e aguarde o redirecionamento.
'); $("#emitir_qrcode").click(function () { geraFormaContribuicao(); }); }else{ $("#form2").html('

Obrigado por contribuir mais uma vez, ' + nome + '!


Clique em "GERAR BOLETO" e aguarde o redirecionamento.
'); diff --git a/html/contribuicao/pix/index.php b/html/contribuicao/pix/index.php index 6cc4c8c2..f7ce1025 100644 --- a/html/contribuicao/pix/index.php +++ b/html/contribuicao/pix/index.php @@ -338,7 +338,7 @@
- +
From 92738ba57c50cd1f697036dd55765d363a7e7e90 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Fri, 2 Aug 2024 10:19:24 -0300 Subject: [PATCH 5/6] =?UTF-8?q?Corre=C3=A7=C3=A3o=20no=20cadastrarSocio.ph?= =?UTF-8?q?p=20do=20m=C3=B3dulo=20de=20contribui=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- html/contribuicao/doacao/model/emitirBoleto.php | 1 + html/contribuicao/mensalidade/model/carne.php | 3 +++ html/contribuicao/php/cadastrarSocio.php | 2 +- html/contribuicao/php/socioCadastrado.php | 3 ++- html/contribuicao/pix/model/emitirQRCode.php | 9 +++++---- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/html/contribuicao/doacao/model/emitirBoleto.php b/html/contribuicao/doacao/model/emitirBoleto.php index 262eb5a2..027ef187 100755 --- a/html/contribuicao/doacao/model/emitirBoleto.php +++ b/html/contribuicao/doacao/model/emitirBoleto.php @@ -174,6 +174,7 @@ function gerarCodigoAleatorio($tamanho = 16) $pdf_link = $responseData['charges'][0]['last_transaction']['pdf']; } else { echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode . '
'); + exit(); // Verifica se há mensagens de erro na resposta JSON $responseData = json_decode($response, true); if (isset($responseData['errors'])) { diff --git a/html/contribuicao/mensalidade/model/carne.php b/html/contribuicao/mensalidade/model/carne.php index 95c0ef0b..2ce02f12 100755 --- a/html/contribuicao/mensalidade/model/carne.php +++ b/html/contribuicao/mensalidade/model/carne.php @@ -285,6 +285,7 @@ function removeDirectory($dir) { //$arquivos[] = $responseData['charges'][0]['last_transaction']['pdf']; } else { echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode); + exit(); // Verifica se há mensagens de erro na resposta JSON $responseData = json_decode($response, true); if (isset($responseData['errors'])) { @@ -331,6 +332,7 @@ function removeDirectory($dir) { // 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); @@ -351,6 +353,7 @@ function removeDirectory($dir) { } } else { echo json_encode("Erro ao baixar o arquivo: HTTP $httpCode"); + exit(); } } diff --git a/html/contribuicao/php/cadastrarSocio.php b/html/contribuicao/php/cadastrarSocio.php index da012d44..d89b4065 100755 --- a/html/contribuicao/php/cadastrarSocio.php +++ b/html/contribuicao/php/cadastrarSocio.php @@ -5,7 +5,7 @@ $pdo = $conexao->pdo; $nome = $_POST['nome']; -$tel = $_POST['telefone']; +$telefone = $_POST['telefone']; $email = $_POST['contato']; $tipo = $_POST['tipo']; $doc = $_POST['doc']; diff --git a/html/contribuicao/php/socioCadastrado.php b/html/contribuicao/php/socioCadastrado.php index 61af30f5..86a01fde 100755 --- a/html/contribuicao/php/socioCadastrado.php +++ b/html/contribuicao/php/socioCadastrado.php @@ -55,8 +55,9 @@ function verificaEndereco($pessoa){ $bairro = trim($pessoa['bairro']); $logradouro = trim($pessoa['logradouro']); $numeroEndereco = trim($pessoa['numero_endereco']); + $telefone = trim($pessoa['telefone']); - if(!$cep || empty($cep) || !$estado || empty($estado) || !$cidade || empty($cidade) || !$bairro || empty($bairro) || !$logradouro || empty($logradouro) || !$numeroEndereco || empty($numeroEndereco)){ + if(!$cep || empty($cep) || !$estado || empty($estado) || !$cidade || empty($cidade) || !$bairro || empty($bairro) || !$logradouro || empty($logradouro) || !$numeroEndereco || empty($numeroEndereco) || !$telefone || empty($telefone)){ return false; } diff --git a/html/contribuicao/pix/model/emitirQRCode.php b/html/contribuicao/pix/model/emitirQRCode.php index b14eb142..f10f2a15 100644 --- a/html/contribuicao/pix/model/emitirQRCode.php +++ b/html/contribuicao/pix/model/emitirQRCode.php @@ -56,7 +56,7 @@ function gerarCodigoAleatorio($tamanho = 16) $regras = $regras->fetch(PDO::FETCH_ASSOC); if ($value < $regras['min_boleto_uni']) { - echo json_encode('O valor para uma doação está abaixo do mínimo requerido.'); + echo json_encode(['erro' => 'O valor para uma doação está abaixo do mínimo requerido.']); exit(); } @@ -137,7 +137,7 @@ function gerarCodigoAleatorio($tamanho = 16) // Verifica por erros no cURL if (curl_errno($ch)) { - echo json_encode('Erro na requisição: ' . curl_error($ch)); + echo json_encode(['erro' => curl_error($ch)]); curl_close($ch); exit; } @@ -152,7 +152,8 @@ function gerarCodigoAleatorio($tamanho = 16) if ($httpCode === 200 || $httpCode === 201) { $responseData = json_decode($response, true); } else { - echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode); + echo json_encode(['erro' => 'A API retornou o código de status HTTP ' . $httpCode]); + exit(); // Verifica se há mensagens de erro na resposta JSON $responseData = json_decode($response, true); if (isset($responseData['errors'])) { @@ -170,5 +171,5 @@ function gerarCodigoAleatorio($tamanho = 16) //envia o link da url echo json_encode(['link' => $qr_code_url]); } else { - echo json_encode("Houve um erro ao gerar o QR CODE de pagamento. Verifique se as informações fornecidas são válidas."); + echo json_encode(["erro" => "Houve um erro ao gerar o QR CODE de pagamento. Verifique se as informações fornecidas são válidas."]); } From 25f4c4541d654738f9a141712975a8da4cad9ab0 Mon Sep 17 00:00:00 2001 From: GabrielPintoSouza Date: Mon, 5 Aug 2024 08:53:49 -0300 Subject: [PATCH 6/6] =?UTF-8?q?Resolu=C3=A7=C3=A3o=20issue=20#647?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doacao/model/emitirBoleto.php | 6 ++--- html/contribuicao/js/cadastroSocio.js | 7 +++++ html/contribuicao/php/editaSocio.php | 27 ++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/html/contribuicao/doacao/model/emitirBoleto.php b/html/contribuicao/doacao/model/emitirBoleto.php index 027ef187..168aa532 100755 --- a/html/contribuicao/doacao/model/emitirBoleto.php +++ b/html/contribuicao/doacao/model/emitirBoleto.php @@ -172,9 +172,9 @@ function gerarCodigoAleatorio($tamanho = 16) if ($httpCode === 200 || $httpCode === 201) { $responseData = json_decode($response, true); $pdf_link = $responseData['charges'][0]['last_transaction']['pdf']; + echo json_encode(['link' => $pdf_link]); } else { - echo json_encode('Erro: A API retornou o código de status HTTP ' . $httpCode . '
'); - exit(); + echo json_encode(['Erro' => 'A API retornou o código de status HTTP ' . $httpCode]); // Verifica se há mensagens de erro na resposta JSON $responseData = json_decode($response, true); if (isset($responseData['errors'])) { @@ -185,4 +185,4 @@ function gerarCodigoAleatorio($tamanho = 16) } } -echo json_encode(['link' => $pdf_link]); + diff --git a/html/contribuicao/js/cadastroSocio.js b/html/contribuicao/js/cadastroSocio.js index 5c2ca632..b7bb7e10 100755 --- a/html/contribuicao/js/cadastroSocio.js +++ b/html/contribuicao/js/cadastroSocio.js @@ -124,6 +124,13 @@ function editar_informacoes() { console.log("Tipo Pessoa: " + tipoPessoa); //console.log("Dados2 : ", dados); $.post("../php/editaSocio.php", { 'nome': nome, 'telefone': tel, 'email': email, 'doc': doc, 'datanascimento': data_n, 'cep': cep, 'log': rua, 'numero': numero, 'comp': compl, 'bairro': bairro, 'cidade': cidade, 'uf': uf, 'tipoPessoa': tipoPessoa }).done(function (data) { + const resposta = JSON.parse(data); + + if(resposta.Erro){ + alert('Não foi possível alterar as informações: '+resposta.Erro); + return; + } + $("#form2").fadeIn(); $("#form2").html('

Dados atualizados com sucesso!



OK
') $("#pag3").hide(); diff --git a/html/contribuicao/php/editaSocio.php b/html/contribuicao/php/editaSocio.php index f4f54211..dbb47a45 100755 --- a/html/contribuicao/php/editaSocio.php +++ b/html/contribuicao/php/editaSocio.php @@ -20,7 +20,31 @@ $tipoPessoa = $_POST['tipoPessoa']; -try { +try{//Try catch para validar se um funcionário está logado para conseguir alterar suas informações + $sqlPesquisaFuncionario = 'SELECT p.id_pessoa FROM pessoa p JOIN funcionario f ON(p.id_pessoa=f.id_pessoa) WHERE p.cpf=:doc'; + $stmt = $pdo->prepare($sqlPesquisaFuncionario); + $stmt->bindParam(':doc', $doc); + $stmt->execute(); + $resultado = $stmt->fetch(PDO::FETCH_ASSOC); + + if($resultado && !empty($resultado)){ + $idPessoa = $resultado['id_pessoa']; + if($idPessoa && $idPessoa > 0){ + session_start(); + $idPessoaLogada = $_SESSION['id_pessoa']; + if($idPessoaLogada != $idPessoa){ + echo json_encode(['Erro' => 'Você não possuí as permissões necessárias']); + exit(); + } + } + } + +}catch(PDOException $e){ + echo 'Erro ao consultar banco de dados: '.$e->getMessage(); +} + + +try {//Try catch para editar sócio $sqlPesquisaSocio = "SELECT * FROM socio s JOIN pessoa p ON (s.id_pessoa=p.id_pessoa) WHERE p.cpf =:doc"; $stmt = $pdo->prepare($sqlPesquisaSocio); @@ -57,6 +81,7 @@ } $query->query("UPDATE pessoa as p JOIN socio as s ON(p.id_pessoa = s.id_pessoa) SET nome = '$nome', telefone= '$tel', data_nascimento = '$dataN', cep = '$cep', logradouro = '$rua', numero_endereco = '$numero', complemento = '$compl', bairro = '$bairro', cidade = '$cidade', estado= '$uf', email = '$email' WHERE cpf = '$doc'"); + echo json_encode(['Sucesso' => 'Alteração concluída com sucesso']); } catch (PDOException $e) { echo 'Erro ao tentar alterar os dados de um sócio: ' . $e->getMessage(); }