HEX
Server: LiteSpeed
System: Linux cp01.bhostbrasil.com.br 5.14.0-611.16.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Dec 22 03:40:39 EST 2025 x86_64
User: onlyfibr (1083)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/onlyfibr/public_html/models/model_pagseguro.php
<?php

Class model_pagseguro extends model{
	
    public function parcelamento( $valor ){
    	
    	$valores = new model_valores();
    	
		//numero máximo de parcelas
		$parcelas = 10;
		$valor_minimo = 5.00;
		$valor_parcela = $valor;
		
		//calculo parcelas
		$parcelas_1 = $valores->trata_valor_calculo($valor * 1.00000);
		$parcelas_2 = $valores->trata_valor_calculo($valor * 0.52255);
		$parcelas_3 = $valores->trata_valor_calculo($valor * 0.35347);
		$parcelas_4 = $valores->trata_valor_calculo($valor * 0.26898);
		$parcelas_5 = $valores->trata_valor_calculo($valor * 0.21830);
		$parcelas_6 = $valores->trata_valor_calculo($valor * 0.18453);
		$parcelas_7 = $valores->trata_valor_calculo($valor * 0.16044);
		$parcelas_8 = $valores->trata_valor_calculo($valor * 0.14240);
		$parcelas_9 = $valores->trata_valor_calculo($valor * 0.12838);
		$parcelas_10 = $valores->trata_valor_calculo($valor * 0.11717);
		$parcelas_11 = $valores->trata_valor_calculo($valor * 0.10802);
		$parcelas_12 = $valor * 0.10040;
		
		if($parcelas_1 > $valor_minimo){
			$valor_parcela = $parcelas_1;
			$parcelas = 1;

			if($parcelas_2 > $valor_minimo){
				$valor_parcela = $parcelas_2;
				$parcelas = 2;

				if($parcelas_3 > $valor_minimo){
					$valor_parcela = $parcelas_3;
					$parcelas = 3;

					if($parcelas_4 > $valor_minimo){
						$valor_parcela = $parcelas_4;
						$parcelas = 4;

						if($parcelas_5 > $valor_minimo){
							$valor_parcela = $parcelas_5;
							$parcelas = 5;

							if($parcelas_6 > $valor_minimo){
								$valor_parcela = $parcelas_6;
								$parcelas = 6;

								if($parcelas_7 > $valor_minimo){
									$valor_parcela = $parcelas_7;
									$parcelas = 7;

									if($parcelas_8 > $valor_minimo){
										$valor_parcela = $parcelas_8;
										$parcelas = 8;

										if($parcelas_9 > $valor_minimo){
											$valor_parcela = $parcelas_9;
											$parcelas = 9;

											if($parcelas_10 > $valor_minimo){
												$valor_parcela = $parcelas_10;
												$parcelas = 10;

												if($parcelas_11 > $valor_minimo){
													$valor_parcela = $parcelas_11;
													$parcelas = 11;

													if($parcelas_12 > $valor_minimo){
														$valor_parcela = $parcelas_12;
														$parcelas = 12;
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

		$valor_parcelado = $valor_parcela;

		//retorna texto
		return $parcelas."x de R$ ".$valores->trata_valor($valor_parcelado)." com PagSeguro";
	}


	////////////////////////////////////////////////////////////////////////////////////
	// pagamento antiga api pagseguro ( para funcionar deve liberar o pagaemnto em formato html no painel do pagseguro)
	public function pagamento_html($pedido){
		
		$valores = new model_valores();

		// dados de configuração pagseguro
		$conexao = new mysql();
		$coisas_pagamento = $conexao->Executar("SELECT * FROM pagamento WHERE id='1' ");
		$data_pagamento = $coisas_pagamento->fetch_object(); 

		// dados do pedido
		$conexao = new mysql();
		$coisas_pedido = $conexao->Executar("SELECT * FROM pedido_loja WHERE codigo='$pedido' ");
		$data_pedido = $coisas_pedido->fetch_object(); 

		// dados do cadastro
		$model_cadastro = new model_cadastro();
		$data_dados = $model_cadastro->carrega($data_pedido->cadastro);

		// email pagseguro
		$email_pagseguro = $data_pagamento->email_pagseguro;

		// converte valores para pagseguro
		$valor_tratado = str_replace(".", "", $valores->trata_valor($data_pedido->valor_total));
		$valor_tratado = str_replace(",", ".", $valor_tratado);
		$descricao = "Pedido $data_pedido->id";

		$retorno = '
		<!DOCTYPE html>
		<html lang="en">
			<head>
				<meta charset="utf-8">
			</head>

			<body>
			<form name="auto_enviar" id="auto_enviar" method="post" action="https://pagseguro.uol.com.br/v2/checkout/payment.html" >

				        <!-- Campos obrigatórios -->  
				        <input type="hidden" name="receiverEmail" value="'.$email_pagseguro.'">  
				        <input type="hidden" name="currency" value="BRL">

				        <input type="hidden" name="itemId1" value="0001">  
				        <input type="hidden" name="itemDescription1" value="'.$descricao.'">  
				        <input type="hidden" name="itemAmount1" value="'.$valor_tratado.'">
				        <input type="hidden" name="itemQuantity1" value="1">

				        <input type="hidden" name="reference" value="'.$data_pedido->codigo.'" >

				        <input type="hidden" name="senderName" value="">
				        <input type="hidden" name="senderEmail" value="'.$data_dados->email.'">

				<div style="font-size:16px; color:#666 padding-bottom:10px;">caso você não seja redirecionado automaticamente, clique no botão abaixo!</div>

				<div><input type="image" name="submit" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/120x53-pagar.gif" alt="Pague com PagSeguro"></div>

			</form>

			<script>
				var myForm = document.getElementById("auto_enviar");
				myForm.submit();
			</script>
			    	
			</body>
		</html>
		';

		echo $retorno;
		exit;
	}


	////////////////////////////////////////////////////////////////////////////////////
	// nova api pagseguro
	public function pagamento($pedido, $cadastro, $descricao, $valor_total){

		$retorno = array();
		$retorno['erro'] = 2;
		$retorno['erro_msg'] = '';
		$retorno['code'] = '';

		$valores = new model_valores();

		// dados de configuração pagseguro
		$conexao = new mysql();
		$coisas_pagamento = $conexao->Executar("SELECT * FROM pagamento WHERE id='1' ");
		$data_pagamento = $coisas_pagamento->fetch_object();		 

		// dados do cadastro
		$model_cadastro = new model_cadastro(); 
		if($data_dados = $model_cadastro->carrega($cadastro)){

			// email pagseguro
			$email_pagseguro = $data_pagamento->email_pagseguro;

			// converte valores para pagseguro
			$valor_tratado = str_replace(".", "", $valores->trata_valor($valor_total));
			$valor_tratado = str_replace(",", ".", $valor_tratado);			 

			// dadps
			if($data_dados->tipo == 'F'){
				$nome = $data_dados->fisica_nome;
				$documento = $data_dados->fisica_nome;
				$documento_tipo = "CPF";
			} else {
				$nome = $data_dados->juridica_razao; 
				$documento = $data_dados->juridica_cnpj; 
				$documento_tipo = "CNPJ";
			}

			$telefone_limpo = str_replace(array("(", ")", " ", "-", "."), "", $data_dados->telefone);
			$ddd = substr($telefone_limpo, 0, 2);
			$fone = substr($telefone_limpo, 2);

			$data = array();

			$data['token'] = $data_pagamento->token_retorno_pagseguro;
			$data['email'] = $email_pagseguro;
			$data['currency'] = 'BRL';
			$data['reference'] = $pedido;

			$data['itemId1'] = '0001';
			$data['itemQuantity1'] = '1';
			$data['itemDescription1'] = $descricao;
			$data['itemAmount1'] = $valor_tratado;

			$data['senderName'] = $nome;
			$data['senderAreaCode'] = $ddd;
			$data['senderPhone'] = $fone;
			$data['senderEmail'] = $data_dados->email;

			$data['shippingType'] = 3;
			$data['shippingAddressStreet'] = $data_dados->endereco;
			$data['shippingAddressNumber'] = $data_dados->numero;
			$data['shippingAddressComplement'] = $data_dados->complemento;
			$data['shippingAddressDistrict'] = $data_dados->bairro;
			$data['shippingAddressPostalCode'] = str_replace(array(" ", "-", "."), "", $data_dados->cep);
			$data['shippingAddressCity'] = $data_dados->cidade;
			$data['shippingAddressState'] = $data_dados->estado;
			$data['shippingAddressCountry'] = 'BRA';
			
			$url = 'https://ws.pagseguro.uol.com.br/v2/checkout';
			$data = http_build_query($data);
			$curl = curl_init($url);

			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($curl, CURLOPT_POST, true);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
			curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
			$xml = curl_exec($curl);		
			curl_close($curl);
			$xml = simplexml_load_string($xml);
			
			if($xml != 'Unauthorized'){

				if(count($xml->error) > 0){
					$retorno['erro'] = 1;
					$retorno['erro_msg'] = $xml->error->message;
					$retorno['code'] = '';
				} else {
					$retorno['erro'] = 0;
					$retorno['erro_msg'] = '';
					$retorno['code'] = $xml->code;
				}
				
			} else {
				$retorno['erro'] = 1;
				$retorno['erro_msg'] = 'Pagamento não autorizado!';
				$retorno['code'] = '';
			}
			
		} else {
			$retorno['erro'] = 1;
			$retorno['erro_msg'] = 'Faça o login e tente novamente!';
			$retorno['code'] = '';
		}
		
		return $retorno;
	}
	
    
}