Array
(
)

Erro de programação, macumba?

PHP
Alecsander Hoppe
   - 13 nov 2014

Eae povo, to com um problema chato, parece macumba.
É o seguinte, estou trabalhando com a API de pagamento do PagSeguro, meu código está:
Formulário de inscrição -> POST para a mesma página, que um arquivo includado detecta o post, faz a inserção no Banco de Dados. Até ai tudo bem...
Agora vem a treta.. antes dele dar um Header na página eu boto o código para abrir uma requisição ao PagSeguro ->
#Código

  require "PagSeguroLibrary/PagSeguroLibrary.php";
                                                         class CreatePaymentRequestLightbox
                                                            {

                                                                public static function main()
                                                                {

                                                                    $paymentRequest = new PagSeguroPaymentRequest();
                                                                    
                                                                    $paymentRequest->setRedirectUrl("http://localhost/inscreva-se");

                                                                    $paymentRequest->addParameter('notificationURL', 'Url Retorno');
                                                                    $sedexCode = PagSeguroShippingType::getCodeByType('NOT_SPECIFIED');
                                                                    $paymentRequest->setShippingType($sedexCode);
                                                                      $paymentRequest->setShippingAddress(
                                                                            $_POST['i_cep']
                                                                        );
                                                                    $tel = substr(telParaTxt($_POST['i_phone']), 2);
                                                                        $ddd = substr(telParaTxt($_POST['i_phone']), 0, 2);
                                                                          if($ddd == '__') { 
                                                                         $tel = ''; $ddd = ''; }
                                                                        // Set your customer information.
                                                                  
                                                                        $paymentRequest->setSender(
                                                                            $_POST['i_fullname'],
                                                                            $_POST['i_email'],
                                                                            $ddd,
                                                                            $tel
                                                                                
                                                                        ); 
                                                                    
                                                                        mysql_select_db($GLOBALS['database_connection'], $GLOBALS['connection']);
                                                                 $sql = "SHOW TABLE STATUS LIKE 'site_requisicoes'";
                                                                    $resultado = mysql_query($sql);

                                                                    $linha = mysql_fetch_array($resultado);
                                                                    $next = $linha['Auto_increment'];                                                                    
                                                                    $paymentRequest->setReference($next);
                                                                    $paymentRequest->setCurrency("BRL");

                                                                    $paymentRequest->addItem('0001', 'Produto', 1, $GLOBALS['valor']);


                                                                    try {

                                                                        $credentials = new PagSeguroAccountCredentials("Epa, meu e-mail",
                                                                           "Meu token safadinho"); 
                                                                        // Register this payment request in PagSeguro to obtain the checkout code
                                                                        $onlyCheckoutCode = true;
                                                                        $code = $paymentRequest->register($credentials, $onlyCheckoutCode);

                                                                        self::printPaymentUrl($code);
                                                                    } catch (PagSeguroServiceException $e) {
                                                                        die($e->getMessage());
                                                                    }
                                                                }
                                                                public static function printPaymentUrl($code)
                                                                {
                                                                    if ($code) {            
                                                                        $_SESSION['code'] = $code;
                                                                        criarRequisicaoPagamento($GLOBALS['ultimo'], $code, $GLOBALS['valor']);
                                                                    }
                                                                }

                                                            }
    CreatePaymentRequestLightbox::main();

Quando eu boto o código acima no meu código para criar uma requisição ao pagseguro, e ao meu sistema (criarRequisicaoPagamento) (esta função só bota no banco) ele duplica o que boto na pagina de inscrever, eu boto la, nome, email, e cai duas vezes no banco, com alguns segundos de diferença, e detalhe, demora um pouco pra inserir... :/
Só acontece quando incluo este código. Não intendo muito dessa api de PagSeguro, será que tem alguma coisa ai repetindo meu post, fazendo com que a pagina se atualize?
Um detalhe bem importante, nem botei no Forum de desenvolvedores do PagSeguro, pois eles tem restrição de não sei quantos caracteres e tive que tirar 2000, ou seja, sem o código, ai não ia resolver de nada.

Alecsander Hoppe
   - 13 nov 2014

Resolvi, não era o código, mais ele influenciava em alguma coisa pois só duplicava com ele, era um javascript, por causa do Cep, ele clicava 2 vezes :/

Marcio Araujo
   - 13 nov 2014

Tenta mandar email.

Marcio Araujo
   - 13 nov 2014

Uma pergunta, é facil fazer essas integrações?

Alecsander Hoppe
   - 13 nov 2014


Citação:
Uma pergunta, é facil fazer essas integrações?


É bem fácil cara, não tem mistério, a própria DevMedia tem tutoriais, e a documentação do PagSeguro é muito completa.