public static function capturarDados() { // Variáveis de retorno // Obtenha seu TOKEN entrando no menu Ferramentas do Pagamento Digital $token = "79959701D0D99B078B7C"; /* Montando as variáveis de retorno */ $post1 = $_POST; $id_transacao = $_POST['id_transacao']; $data_transacao = $_POST['data_transacao']; $data_credito = $_POST['data_credito']; $valor_original = $_POST['valor_original']; $valor_loja = $_POST['valor_loja']; $tipo_pagamento = $_POST['tipo_pagamento']; $parcelas = $_POST['parcelas']; $cliente_nome = $_POST['cliente_nome']; $cliente_email = $_POST['cliente_email']; $cliente_cpf = $_POST['cliente_cpf']; $cliente_endereco = $_POST['cliente_endereco']; $cliente_complemento = $_POST['cliente_complemento']; $status = $_POST['status']; $cod_status = $_POST['cod_status']; $cliente_bairro = $_POST['cliente_bairro']; $cliente_cidade = $_POST['cliente_cidade']; $cliente_estado = $_POST['cliente_estado']; $cliente_cep = $_POST['cliente_cep']; $frete = $_POST['frete']; $tipo_frete = $_POST['tipo_frete']; $informacoes_loja = $_POST['informacoes_loja']; $id_pedido = $_POST['id_pedido']; $free = $_POST['free']; /* Essa variável indica a quantidade de produtos retornados */ $qtde_produtos = $_POST['qtde_produtos']; $params = array("transacao" => $id_transacao, "status" => $status, "valor_original" => $valor_original, "valor_loja" => $valor_loja, "token" => $token); $postdata = http_build_query($params); $enderecoPost = "https://www.pagamentodigital.com.br/checkout/verify/"; $opts = array('http' => array('method' => 'POST', 'header' => "Content-type: application/x-www-form-urlencoded \r\n", 'content' => $postdata)); $context = stream_context_create($opts); $resposta = file_get_contents($enderecoPost, false, $context); if (trim($resposta) == "VERIFICADO") { $vendaobj = new Modulo_Clientes_Venda(); // Loop para retornar dados dos produtos for ($x = 1; $x <= $qtde_produtos; $x++) { $produto_codigo = $_POST['produto_codigo_' . $x]; $produto_descricao = $_POST['produto_descricao_' . $x]; $produto_qtde = $_POST['produto_qtde_' . $x]; $produto_valor = $_POST['produto_valor_' . $x]; $produto_extra = $_POST['produto_extra_' . $x]; /* Após obter as variáveis dos produtos, grava no banco de dados. Se produto já existe, atualiza os dados, senão cria novo pedido. */ # Grava os dados no banco $id = $vendaobj->gravaVendas($post1); } # mostra o layout do comprovante echo $vendaobj->mostraComprovante($id); } die; }
public function capturarDados() { $token = 'DB48615D5BDC24C9EA59D626C98760F3'; // RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDAÇÃO DOS DADOS $PagSeguro = 'Comando=validar'; $PagSeguro .= '&Token=' . $token; // token de retorno do pagseguro // para cada variavel do Post verifica e retorna para verificação foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $PagSeguro .= "&{$key}={$value}"; } $post1 = $_POST; $ch = curl_init(); // ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); $msg_erro = '/VERIFICADO/i'; $erro = ''; $cont = 0; $max_req = 10; //max de requisições para o site dos correios while ($cont < $max_req) { $resp = curl_exec($ch); if (!preg_match($msg_erro, $resp, $erro)) { break; } else { $cont++; } } curl_close($ch); if ($resp) { // recebe os dados enviados pelo pagseguro e grava no banco $post1['free'] = 'Bazar'; $post1['status'] = $_POST['StatusTransacao']; $post1['parcelas'] = 1; $post1['tipo_pagamento'] = $_POST['TipoPagamento']; $post1['valor_original'] = $_POST['ProdValor_1']; $post1['valor_loja'] = $_POST['ProdValor_1']; $post1['cliente_nome'] = $_POST['CliNome']; $post1['data_transacao'] = date('d/m/Y'); $post1['tipo_pagamento'] = $_POST['TipoPagamento']; $post1['id_transacao'] = $_POST['TransacaoID']; // remove quaisquer valores da variavel cpf para poder fazer a busca no banco pelo nome do individuo unset($post1['cliente_cpf']); $vendaobj = new Modulo_Clientes_Venda(); // Loop para retornar dados dos produtos // for($x = 1; $x <= $qtde_produtos; $x ++) { $produto_codigo = $_POST['item_codigo_' . $x]; $produto_descricao = $_POST['item_descricao_' . $x]; $produto_qtde = $_POST['item_qtde_' . $x]; $produto_valor = $_POST['item_valor_' . $x]; //$produto_extra = $_POST ['item_extra_' . $x]; /* Após obter as variáveis dos produtos, grava no banco de dados. Se produto já existe, atualiza os dados, senão cria novo pedido. */ # Grava os dados no banco $id = $vendaobj->gravaVendas($post1); if ($id) { $_SESSION['id_pagamento'] = $id; } //} # mostra o layout do comprovante //echo $vendaobj->mostraComprovante ($_SESSION['id_pagamento']); } else { if (strcmp($res, "FALSO") == 0) { // LOG para investigação manual die('deu erro'); } } }