Exemple #1
0
 /**
  * verifica
  *
  * Verifica o tipo de conexão aberta e envia os dados vindos
  * do post
  *
  * @param array $post      Array contendo os posts do pagseguro
  * @param bool  $tipoEnvio (opcional) Verifica o tipo de envio do post
  *
  * @access static
  * @use RetornoPagSeguro::_tipoenvio()
  * @use RetornoPagSeguro::_confirma()
  * @return bool
  */
 static function verifica($post, $tipoEnvio = false, $function = null)
 {
     if ('array' !== gettype($tipoEnvio)) {
         $tipoEnvio = RetornoPagSeguro::_tipoEnvio();
     }
     if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) {
         return false;
     }
     $confirma = RetornoPagSeguro::_confirma($tipoEnvio, $post);
     if ($confirma) {
         $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();
         $total = 0;
         for ($i = 1; isset($post["ProdID_{$i}"]); $i++) {
             $produto = self::makeProd($post, $i);
             $produtos[] = $produto;
             unset($produto['ProdID'], $produto['ProdDescricao']);
             // Hack apenas para o Módulo Magento
             $total += $produto['ProdValor'] * $produto['ProdQuantidade'];
         }
         $total += self::convertNumber($post['ValorFrete']);
         if (function_exists('retorno_automatico') and !$function) {
             $function = 'retorno_automatico';
         }
         if ($function) {
             call_user_func($function, $post['Referencia'], $post['StatusTransacao'], $total, $produtos, (object) $post);
         }
     }
     return $confirma;
 }
Exemple #2
0
 /**
  * verifica
  *
  * Verifica o tipo de conexão aberta e envia os dados vindos
  * do post
  *
  * @param array $post      Array contendo os posts do pagseguro
  * @param bool  $tipoEnvio (opcional) Verifica o tipo de envio do post
  *
  * @access public
  * @use RetornoPagSeguro::_tipoenvio()
  * @use RetornoPagSeguro::_confirma()
  * @return bool
  */
 function verifica($post, $tipoEnvio = false)
 {
     if ('array' !== gettype($tipoEnvio)) {
         $tipoEnvio = RetornoPagSeguro::_tipoEnvio();
     }
     if (!in_array($tipoEnvio[0], array('curl', 'fsocket'))) {
         return false;
     }
     $confirma = RetornoPagSeguro::_confirma($tipoEnvio, $post);
     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[] = self::makeProd($post, $i);
         }
         retorno_automatico($post['Referencia'], $post['StatusTransacao'], (object) $post);
     }
     return $confirma;
 }