Retorno automatico PagSeguro

Ola Pessoal alguem poderia me ajudar sobre retorno automatico.

Tenho esta funçao que implementei so que no esta retornando nada, fiz algum teste online pois eu nao tenho como testar local. E fial algumaas compra por boleto para teste e nao tive nenhum retorno. testei varias vezes.




 public function actionRetorno(){

            $retorno_token = 'meu token';

            $PagSeguro = 'Comando=validar';

            $PagSeguro .= '&Token=' . $retorno_token;

            $Cabecalho = "Retorno PagSeguro";


            foreach ($_POST as $key => $value) {

                $value = urlencode(stripslashes($value));

                $PagSeguro .= "&$key=$value";

            }


            if (function_exists('curl_exec')) {

                $curl = true;

            } elseif ((PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30))) {

                $fsocket = true;

            } elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30)) {

                $fsocket = true;

            }


            if ($curl == true) {


                $ch = curl_init();


                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, true);

                curl_setopt($ch, CURLOPT_HEADER, false);

                curl_setopt($ch, CURLOPT_TIMEOUT, 30);

                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


                curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');

                $resp = curl_exec($ch);


                curl_close($ch);

                $confirma = (strcmp($resp, "VERIFICADO") == 0);

            } elseif ($fsocket == true) {

                $Cabecalho = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n";

                $Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";

                $Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n";


                if ($fp || $errno > 0) {

                    fputs($fp, $Cabecalho . $PagSeguro);

                    $confirma = false;

                    $resp = '';

                    while (!feof($fp)) {

                        $res = @fgets($fp, 1024);

                        $resp .= $res;

                        if (strcmp($res, "VERIFICADO") == 0) {

                            $confirma = true;

                            break;

                        }

                    }

                    fclose($fp);

                } else {

                    echo "$errstr ($errno)<br />\n";

                }

            }


            if ($confirma) {


                $TransacaoID = $_POST['TransacaoID'];    

             

                if ($TransacaoID <> '') {


                    $model = Pagsegurotransacoes::model()->find(array('condition'=>'TransacaoID = '.$TransacaoID));

                    if (sizeof($model) == 0) {

                            $model = new Pagsegurotransacoes;

                            $model->TransacaoID = $_POST['TransacaoID'];

                            $model->VendedorEmail=  $_POST['VendedorEmail'];

                            $model->Referencia=$_POST['Referencia'];

                            $model->TipoFrete=$_POST['TipoFrete'];

                            $model->ValorFrete=$_POST['ValorFrete'];

                            $model->Extras=$_POST['Extras'];

                            $model->Anotacao=$_POST['Anotacao'];

                            $model->TipoPagamento=$_POST['TipoPagamento'];

                            $model->StatusTransacao=$_POST['StatusTransacao']; 

                            $model->CliNome=$_POST['CliNome'];

                            $model->CliEmail=$_POST['CliEmail'];

                            $model->CliEndereco=$_POST['CliEndereco'];

                            $model->CliNumero=$_POST['CliNumero'];

                            $model->CliComplemento=$_POST['CliComplemento'];

                            $model->CliBairro=$_POST['CliBairro'];

                            $model->CliCidade=$_POST['CliCidade'];

                            $model->CliEstado=$_POST['CliEstado'];

                            $model->CliCEP=$_POST['CliCEP'];

                            $model->CliTelefone=$_POST['CliTelefone'];

                            $model->NumItens=$_POST['NumItens'];

                            $model->Data=date("Y-m-d H:i:s");

                            $model->save(false);

                    } else if (sizeof($model) >= 1) {

                            $model->StatusTransacao = $_POST['StatusTransacao'];

                            $model->TipoPagamento = $_POST['TipoPagamento'];

                            $model->StatusTransacao = $_POST['StatusTransacao'];

                            $model->save(false);         




                    }

                }

            }        

             

            $this->render('retorno');

        }

Sera que alguem que tem algum sistema o alguma forma de testar pra mim se a funçao esta correta…

Valew

Ta usando que versão 1.0 ou 2.0?

Este script acima só funciona para API antiga (1.0).

Para nova API, verifica nas documentação do PagSeguro.

É estou enviado as informações na versao 2…

Sera que alguem daqui ja fez o retorno automativo no yii com a versao 2

Valew meu amigo…