Ir para conteúdo
Fórum Script Brasil

mzaidan

Membros
  • Total de itens

    29
  • Registro em

  • Última visita

Tudo que mzaidan postou

  1. http://www.dprf.gov.br/PortalInternet/index.faces Achei só um ico.gif
  2. Uso o chrome, como eu salvo a imagem? Procurei no código fonte e não vi.
  3. Tem como eu copiar um favicon de uma página?
  4. Finalmente consegui resolver meu problema no retorno automático, agora está funcionando beleza. Queria implementar ele da seguinte forma: Pagamento via depósito valor x, pagamento com cartão y. Isso automaticamente, tem como? Eu pensei em botar um radiobutton, ai a pessoa antes de enviar o post escolhe a forma como quer pagar, se depósito a página do pagseguro já abre com o valor X, sem a possibilidade de cartão. Caso escolha cartão, já abre o valor Y, sem a possibilidade de pagar de outra forma. Ou então, seria até melhor, se fosse automático, a pessoa mandava um post para o pagseguro e la se ela escolhesse cartão seria o valor Y, se não o valor X. Tem como isso?? Eu posso até tentar fazer, mas queria saber se tem como mandar essas informações ao pagseguro. Desde já agradeço.
  5. Que pena que é sua última participação. Pode até ser isso, mas ai como ficaria?? Se o pagseguro mandar a requisição depois de a pessoa já ter fechado a página, como ficaria??
  6. Galera, eu sei que é chato eu ficar aqui enchendo o saco, mas preciso disso urgente. Não quero que ninguém faça código para mim não, só quero uma luz. porque o pagseguro está retornando os POSTs vazios? Alguém? ESerra, ajuda ai irmão.
  7. O problema é esse: Eu não estou recebendo os dados. O POST está vindo com valor zero, ai não posso atualizar os BD porque não sei se foi realmente pago. Vou entrar em contato com o pagseguro para ver se eles me dão isso pronto.
  8. Dei um var_dump($_POST); e está sempre retornando zero. Qual o erro?
  9. QUAL O ERRO PELO AMOR DE DEUS??? <?php $dia = date("Y-m-d"); $host = 'localhost'; $usuario = 'user_teste'; $banco = 'clientes_teste'; $senha = '12345'; $conexao = mysql_connect($host, $usuario, $senha) or die (mysql_error()); mysql_select_db($banco); $query = "SELECT * FROM cliente where nome = 'loja01'"; mysql_query($query); $resultado = mysql_query($query,$conexao); $linha = mysql_fetch_array($resultado); $id = $linha['id']; $nome = $linha['nome']; $data_inicio = $linha['data_fim']; $data_fim = $linha['data_fim']; $valor = $linha['valor']; $status = $linha['status']; $novadata_inicio = substr($data_inicio,8,2) . "/" .substr($data_inicio,5,2) . "/" . substr($data_inicio,0,4); $novadata_fim = substr($data_fim,8,2) . "/" .substr($data_fim,5,2) . "/" . substr($data_fim,0,4); echo ("<b>Pagamento da última fatura:</b> $novadata_inicio <br>"); echo ("<b>Vencimento:</b> $novadata_fim <br>"); echo ("<b>Status:</b> $status <br>"); echo ("<table border='0'><tr><td><b>Valor:</b></td>"); echo ("<td>R$ $valor</td><tr><td>"); echo ("<b>Pagar: </b></td><td>"); ?> <? // Incluindo o arquivo da biblioteca include('pgs.php'); // Criando um novo carrinho $pgs=new pgs(array('email_cobranca'=>'mzaidan@gmail.com')); // Adicionando um produto $pgs->adicionar(array( array( "descricao"=>"Pagamento de fatura anual", "valor"=>2.00, "peso"=>0, "quantidade"=>1, "id"=>"$id" ), )); // Mostrando o botão de pagamento $pgs->mostra(array("img_button"=>'pagseguro.gif')); echo ("</td></tr></table>"); ?> pgs.php: <?php class pgs { var $_itens = array(); var $_config = array (); var $_cliente = array (); /** * pgs * * Função de inicialização * você pode passar os parâmetros padrão alterando as informações padrão como o tipo de moeda ou * o tipo de carrinho (próprio ou do pagseguro) * * Ex: * <code> * array ( * 'email_cobranca' => 'raposa@vermelha.com.br', * 'tipo' => 'CBR', * 'ref_transacao' => 'A36', * 'tipo_frete' => 'PAC', * ) * </code> * * @access public * @param array $args Array associativo contendo as configurações que você deseja alterar * @return void */ function pgs($args = array()) { if ('array'!=gettype($args)) $args=array(); $default = array( 'email_cobranca' => '', 'tipo' => 'CP', 'moeda' => 'BRL', ); $this->_config = $args+$default; } /** * error * * Retorna a mensagem de erro * * @access public * @return string */ function error($msg){ trigger_error($msg); return $this; } /** * adicionar * * Adiciona um item ao carrinho * * O elemento adicionado deve ser um array associativo com as seguintes chaves * id => string com até 100 caracteres * descricao => string com até 100 caracteres * quantidade => integer * valor => integer ou float * peso => integer (opcional) coloque o peso (em gramas) do produto, caso seja um peso único para todos os * produtos é preferivel inplantá-lo no new pgs(array('item_peso_1' => 1300)) * frete => integer ou float (opcional) coloque o valor do frete, caso seja um frete único * para todos os produtos é preferivel inplantá-lo no new pgs(array('item_frete_1' => 30)) * * @access public * @param array $item O elemento que será adicionado * @return object pgs O próprio objeto para que possa ser concatenado a outro comando dele mesmo */ function adicionar($item) { if ('array' !== gettype($item)) return $this->error("Item precisa ser um array."); if(isset($item[0]) && 'array' === gettype($item[0])){ foreach ($item as $elm) { if('array' === gettype($elm)) { $this->adicionar($elm); } } return $this; } $tipos=array( "id" => array(1,"string", '@\w@' ), "quantidade" => array(1,"string,integer", '@^\d+$@' ), "valor" => array(1,"double,string,integer", '@^\d*\.?\d+$@'), "descricao" => array(1,"string", '@\w@' ), "frete" => array(0,"string,integer", '@^\d+$@' ), "peso" => array(0,"string,integer", '@^\d+$@' ), ); foreach($tipos as $elm=>$valor){ list($obrigatorio,$validos,$regexp)=$valor; if(isset($item[$elm])){ if(strpos($validos,gettype($item[$elm])) === false || (gettype($item[$elm]) === "string" && !preg_match($regexp,$item[$elm]))){ return $this->error("Valor invalido passado para $elm."); } }elseif($obrigatorio){ return $this->error("O item adicionado precisa conter $elm"); } } $this->_itens[] = $item; return $this; } /** * cliente * * Define o cliente a ser inserido no sistema. * Recebe como parametro um array associativo contendo os dados do cliente. * * Ex: * <code> * array ( * 'nome' => 'José de Arruda', * 'cep' => '12345678', * 'end' => 'Rua dos Tupiniquins', * 'num' => 37, * 'compl' => 'apto 507', * 'bairro' => 'Sto Amaro', * 'cidade' => 'São Camilo', * 'uf' => 'SC', * 'pais' => 'Brasil', * 'ddd' => '48', * 'tel' => '55554877', * 'email' => 'josearruda@teste.com', * ) * </code> * * @access public * @param array $args Dados sobre o cliente, se não forem passados os dados corretos, * o pagseguro se encarrega de perguntar os dados ao cliente * @return void */ function cliente($args=array()) { if ('array'!==gettype($args)) return; $this->_cliente = $args; } /** * * mostra * * Mostra o formulário de envio de post do PagSeguro * * Após configurar o objeto, você pode usar este método para mostrando assim o * formulário com todos os inputs necessários para enviar ao pagseguro. * * <code> * array ( * 'print' => false, // Cancelará o evento de imprimir na tela, retornando o formulário * 'open_form' => false, // Não demonstra a tag <form target="pagseguro" ... > * 'close_form' => false, // Não demonstra a tag </form> * 'show_submit' => false, // Não mostra o botão de submit (imagem ou um dos 5 do pagseguro) * 'img_button' => 'imagem.jpg', // Usa a imagem (url) para formar o botão de submit * 'btn_submit' => 1, // Mostra um dos 5 botões do pagseguro no botão de submit * ) * </code> * * @access public * @param array $args Array associativo contendo as configurações que você deseja alterar */ function mostra ($args=array()) { $default = array ( 'print' => true, 'open_form' => true, 'close_form' => true, 'show_submit' => true, 'img_button' => false, 'bnt_submit' => false, ); $args = $args+$default; $_input = ' <input type="hidden" name="%s" value="%s" />'; $_form = array(); if ($args['open_form']) $_form[] = '<form target="pagseguro" action="https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx" method="post">'; foreach ($this->_config as $key=>$value) $_form[] = sprintf ($_input, $key, $value); foreach ($this->_cliente as $key=>$value) $_form[] = sprintf ($_input, "cliente_$key", $value); $assoc = array ( 'id' => 'item_id', 'descricao' => 'item_descr', 'quantidade' => 'item_quant', ); $i=1; foreach ($this->_itens as $item) { foreach ($assoc as $key => $value) { $sufixo=($this->_config['tipo']=="CBR")?'':'_'.$i; $_form[] = sprintf ($_input, $value.$sufixo, $item[$key]); unset($item[$key]); } $_form[] = str_replace ('.', '', sprintf (' <input type="hidden" name="%s" value="%.2f" />', "item_valor$sufixo", $item['valor'])); unset($item['valor']); foreach ($item as $key=>$value) $_form[] = sprintf ($_input, "item_{$key}{$sufixo}", $value); $i++; } if ($args['show_submit']) { if ($args['img_button']) { $_form[] = sprintf(' <input type="image" src="%s" name="submit" alt="Pague com o PagSeguro - &eacute; r&aacute;pido, gr&aacute;tis e seguro!" />', $args['img_button']); } elseif (@$args['btn_submit']) { switch ($args['btn_submit']) { case 1: $btn = 'btnComprarBR.jpg'; break; case 2: $btn = 'btnPagarBR.jpg'; break; case 3: $btn = 'btnPagueComBR.jpg'; break; case 4: $btn = 'btnComprar.jpg'; break; case 5: $btn = 'btnPagar.jpg'; break; default: $btn = 'btnComprarBR.jpg'; } $_form[] = sprintf (' <input type="image" src="https://pagseguro.uol.com.br/Security/Imagens/%s" name="submit" alt="Pague com o PagSeguro - &eacute; r&aacute;pido, gr&aacute;tis e seguro!" />', $btn); } else { $_form[] = ' <input type="submit" value="Pague com o PagSeguro" />'; } } if($args['close_form']) $_form[] = '</form>'; $return = implode("\n", $_form); if ($args['print']) print ($return); return $return; } } ?> retorno.php: <?php if (!defined('TOKEN')) define ('TOKEN', '8ACB5ADADEAD484AB8C1A9F993AE2022'); class RetornoPagSeguro { /** * _preparaDados * * Prepara os dados vindos do post e converte-os para url, adicionando * o token do usuario quando necessario. * function _preparaDados($post, $confirmacao=true) { if ('array' !== gettype($post)) $post=array(); if ($confirmacao) { $post['Comando'] = 'validar'; $post['Token'] = TOKEN; } $retorno=array(); foreach ($post as $key=>$value){ if('string'!==gettype($value)) $post[$key]=''; $value=urlencode(stripslashes($value)); $retorno[]="{$key}={$value}"; } return implode('&', $retorno); } function _tipoEnvio() { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if (function_exists('curl_exec')) return array('curl', 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30))) return array('fsocket', '/Security/NPI/Default.aspx', $fp); elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $_retPagSeguroErrNo, $_retPagSeguroErrStr, 30)) return array('fsocket', '/Security/NPI/Default.aspx', $fp); return array ('', ''); } function not_null($value) { if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } function verifica($post, $tipoEnvio=false) { global $_retPagSeguroErrNo, $_retPagSeguroErrStr; if ('array' !== gettype($tipoEnvio)) $tipoEnvio = RetornoPagSeguro::_tipoEnvio(); $spost=RetornoPagSeguro::_preparaDados($post); if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) return false; $confirma = false; if ($tipoEnvio[0] === 'curl') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $spost); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $resp = curl_exec($ch); if (!RetornoPagSeguro::not_null($resp)) { curl_setopt($ch, CURLOPT_URL, $tipoEnvio[1]); $resp = curl_exec($ch); } curl_close($ch); $confirma = (strcmp ($resp, 'VERIFICADO') == 0); } elseif ($tipoEnvio[0] === 'fsocket') { if (!$tipoEnvio[2]) { die ("{$_retPagSeguroErrStr} ($_retPagSeguroErrNo)"); } else { $cabecalho = "POST {$tipoEnvio[1]} HTTP/1.0\r\n"; $cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $cabecalho .= "Content-Length: " . strlen($spost) . "\r\n\r\n"; $resp = ''; fwrite ($tipoEnvio[2], "{$cabecalho}{$spost}"); while (!feof($tipoEnvio[2])) { $resp = fgets ($tipoEnvio[2], 1024); if (strcmp ($resp, 'VERIFICADO') == 0) { $confirma = (strcmp ($resp, 'VERIFICADO') == 0); $confirma=true; break; } } fclose ($tipoEnvio[2]); } } if ($confirma && function_exists('retorno_automatico')) { $itens = array ( 'VendedorEmail', 'TransacaoID', 'Referencia', 'TipoFrete', 'ValorFrete', 'Anotacao', 'DataTransacao', 'TipoPagamento', 'StatusTransacao', 'CliNome', 'CliEmail', 'CliEndereco', 'CliNumero', 'CliComplemento', 'CliBairro', 'CliCidade', 'CliEstado', 'CliCEP', 'CliTelefone', 'NumItens', ); foreach ($itens as $item) { if (!isset($post[$item])) $post[$item] = ''; if ($item=='ValorFrete') $post[$item] = str_replace(',', '.', $post[$item]); } $produtos = array (); for ($i=1;isset($post["ProdID_{$i}"]);$i++) { $produtos[] = array ( 'ProdID' => $post["ProdID_{$i}"], 'ProdDescricao' => $post["ProdDescricao_{$i}"], 'ProdValor' => (double) (str_replace(',', '.', $post["ProdValor_{$i}"])), 'ProdQuantidade' => $post["ProdQuantidade_{$i}"], 'ProdFrete' => (double) (str_replace(',', '.', $post["ProdFrete_{$i}"])), 'ProdExtras' => (double) (str_replace(',', '.', $post["ProdExtras_{$i}"])), ); } retorno_automatico ( $post['VendedorEmail'], $post['TransacaoID'], $post['Referencia'], $post['TipoFrete'], $post['ValorFrete'], $post['Anotacao'], $post['DataTransacao'], $post['TipoPagamento'], $post['StatusTransacao'], $post['CliNome'], $post['CliEmail'], $post['CliEndereco'], $post['CliNumero'], $post['CliComplemento'], $post['CliBairro'], $post['CliCidade'], $post['CliEstado'], $post['CliCEP'], $post['CliTelefone'], $produtos, $post['NumItens'] ); } return $confirma; } } if ($_POST) { RetornoPagSeguro::verifica($_POST); die(); } ?> Ele conecta tudo certo, eu recebo os valores tudo normal (pagamento confirmado) Mas queria que atualizadasse automaticamente o status, o que eu teria que fazer??? Tipo, como eu sei que já foi confirmado o pagamento para liberar no banco de dados? Como seria se fosse por cartão de crédito, onde demora mais um pouco para liberar? Por favor me ajudem!!
  10. Acho que meu erro está na página de envio ao pagseguro. Coloquei um botão do pagseguro na página e montei com php, e enviei. echo ("<form target='pagseguro' action='https://pagseguro.uol.com.br/v2/checkout/cart.html?action=add' method='post'>"); echo ("<input type='hidden' name='receiverEmail' value='mzaidan@gmail.com' />"); echo ("<input type='hidden' name='currency' value='BRL' />"); echo ("<input type='hidden' name='itemId' value=' $id' />"); echo ("<input type='hidden' name='itemDescription' value='Pagamento de fatura anual' />"); echo ("<input type='hidden' name='itemQuantity' value='1' />"); echo ("<input type='hidden' name='itemAmount' value='$valor' />"); echo ("<input type='hidden' name='itemWeight' value='' />"); echo ("<input type='hidden' name='itemShippingCost' value='0.00' />"); echo ("<input type='image' src='../modificacoes/meios/pagseguro.gif' name='submit' </form></tr></table>"); Eu consigo receber os valores, só não consigo a mudança de status automaticamente
  11. Pessoal desculpem criar esse tópico para isso, quando fiz a mesma pergunta em outro. Aceito uma advertência por isso. Mas é que tenho que entregar esse sistema para um cliente e "empaquei" nisso. Como que eu faço a integração do site com o pagseguro? Já criei o token, já criei a página de retorno automática. Botei o token nessa página e postei na net. É só isso? Não deu certo. O que eu tenho que fazer mais? Eu não preciso colocar mais nada no arquivo? Como que ele iria adivinhar que aquele post é daquele cliente em uma compra que demore 2 dias para ser aprovada? Não estou entendendo a sistemática. Li e reli como funciona la no pagseguro, mas continuo sem entender. Alguém pode me ajudar??
  12. Não estou entendendo como essa página ficaria retornando os posts. Suponha que uma compra demore 2 dias para ser dada como certa, como que essa mesma página vai me mostrar esses dados?? Eu não teria que gravar nada nela? Tipo o e-mail do cliente, sei la, alguma coisa. Não estou entendendo muito bem o que fazer. É só colocar esse código com meu token e pronto??
  13. Fiz o teste aqui, paguei e retornou para essa página aqui: "http://lojavirtual.moskaurbana.com.br/retorno/" Está sempre retornando para essa página.
  14. Eu não entendi essa variável $StatusTransacao. Coloco assim mesmo como você disse? porque não a vi no código do pagseguro
  15. ESerra, vou tentar resolver aqui mesmo, caso eu não consiga eu entro em contato com você. De qualquer forma, obrigado. Aproveitando, queria saber se tem como criar uma sessão em uma página e ela ser usada em todas as outras sem eu precisar repeti-la. Eu lembro que existia algo de global session, procurei no forum, mas não achei.
  16. Pensei em criar uma única tabela com: Id Nome Início Fim Valor To tão lascado que não sei nem o tipo, padrão, tamanho dos campos. Tu cobras quanto para fazer isso para mim?
  17. Caracas, tas falando grego. Vamos partir do ponto que eu sou um nada em PHP. Não to nem conseguindo botar um echo aqui. Vou dar uma estudada, pois só estou gastando seu tempo, atrapalhando vc, pois você deve ter coisa mais importante para fazer. Desculpa ai irmão. Abração
  18. Como assim montar a página? To fuçando aqui, aos poucos entendendo. O que seria montar a página? Como??
  19. Vou ter que estudar mais php e mysql, pois não entendi nada do que disse. Pensei em fazer em uma tabela apenas, porque não daria? 2 - Os usuários não vão pagar valores iguais (depende do plano). Assim, tem como eu já definir na página o valor que apareceria no pagseguro?
  20. É porque são vários sites de usuários diferentes postados no mesmo servidor. Cada usuário tem um banco de dados separado. Como que eu poderia fazer? Eu posso criar uma tabela com todos os usuários e consultá-la. Posso criar uma tabela clientes, com todas as informações que eu preciso. Mas a dúvidas ainda continuam, como seria o retorno de cada cliente? Não estou entendendo muito a sistemática desse script. Suponha que eu tenha uma tabela clientes: Nome DataDePagamento DataDeVencimento Status P1 05/05/2011 05/05/2012 Pago P2 05/05/2010 05/05/2011 Vencido P3 04/06/2010 04/06/2011 Vencido Como que eu faria nesse caso?
  21. Valeu ESerra, salvasse o leite das crianças desse mês. Mas, para o leite não engrossar, vai mais uma: No pagseguro eu crio uma página de retorno, essa página de retorno sevirá para todos os usuários? Apenas lembrando que cada usuário tem um banco de dados diferente. Desde já agradeço.
  22. Sim, sim. No espaço que você botou para alterar o BD eu farei isso. Aproveitando (faz muito tempo que não mexo com php), no banco de dados vai ter a data de pagamento, ai quero alterá-la para 12 meses depois (independemente de quando a pessoa pagar) Exemplo: pagamento em 06/06/2011, o usuário tem direito de ir até 06/06/2012, ai ele paga e renova até 06/06/2013. Então, se ele pagar adiantado, independente do dia, terá que atualizar para 06/06/2013. Então, como eu faria isso (qual sql, pois eu me esqueci - 7 anos sem mexer com programação -)? Eu teria que ter um campo início o qual eu somaria 24 meses? O que sugeres? (E qual a sintaxe do sql) Desde já agradeço.
  23. Entendi, então seria algo do tipo: pagina01.php = local para o usuário clicar para pagar. ai vai direto para o pagseguro. Na página de retorno do pagseguro eu coloco esse script. É isso??
  24. Cara, desculpa a burrice, mas o que é gateway? Em qual momento eu envio o comprador para o gateway? Se não for muito incomodo, tu poderias explicar em forma de páginas? Ex: pagina01.php tem os dados do comprador com o botão pagar pagina02.php teria o que? Como que teria que ser feito? Tem como explicar por meio de páginas? Desculpe a burrice e a encheção de saco. Desde já agradeço.
×
×
  • Criar Novo...