Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

P4Designer

Compra simples e Retorno Pagseguro

Recommended Posts

Bom dia meus amigos.

Estou estudando a API do Pagseguro para integrar a um projeto, e seguindo os tutoriais da própria API para isso.

Porém não estou conseguindo obter nenhum dado (status/código/anything), somente o código da Transação, e mesmo com ele, não consigo pesquisar o status do pedido (seguindo os tutoriais da API).

 

Obs.:

  1. Estou fazendo o pagamento do item com Saldo do Pagseguro. Quanto a isso tem algum problema?
  2. O Projeto utiliza: PHP 5.3+, MySQL 5.1+, Apache 2.2+

 

Minha estrutura de pastas está assim: (criei ambos do 0 seguindo os tutoriais):

./
../
pagseguro/
pagseguro/<demais pastas e arquivos da API>
pagamento.php
retorno.php

 

No pagamento, seguindo as instruções da API fiz o seguinte:

  1. Configurei o meu email/token no arquivo pagseguro/PagSeguroConfig.php
    $PagSeguroConfig['credentials'] = array();
    $PagSeguroConfig['credentials']['email'] = "exemplo@exemplo.com";
    $PagSeguroConfig['credentials']['token'] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    
    $PagSeguroConfig['application'] = array();
    $PagSeguroConfig['application']['charset'] = "UTF-8"; // UTF-8, ISO-8859-1
    
    $PagSeguroConfig['log'] = array();
    $PagSeguroConfig['log']['active'] = TRUE;
    $PagSeguroConfig['log']['fileLocation'] = "log.txt";
    


     

  2. Inseri as seguintes instruções no arquivo pagseguro/pagamento.php (seguindo a API)
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
    <title>Pagamento - API PagSeguro</title>
    </head>
    <body>
    
    <?php
    require_once "pagseguro/PagSeguroLibrary.php";
    $paymentRequest = new PaymentRequest();
    
    $paymentRequest->addItem(1,'Curso Imasters',1,500.0);
    
    // Dados do cliente
    $nome = 'Cliente';
    $email = 'cliente@gmail.com';
    $ddd = '34';
    $telefone = '00000000'; 
    $paymentRequest->setSender($nome,$email,$ddd,$telefone);
    
    // Endereço de entrega
    $paymentRequest->setShippingAddress(
    	'00000000', 
    	'Rua Exemplo', 
    	'000', 
    	'Complemento', 
    	'', 
    	'Cidade', 
    	'MG', 
    	'Brasil'
    );
    
    $paymentRequest->setCurrency('BRL');
    
    // Método de entrega 1 - PAC , 2 - SEDEX , 3 - OUTRO
    $paymentRequest->setShippingType(1);
    
    $ref = uniqid();
    $paymentRequest->setReference($ref);
    
    $credentials = PagSeguroConfig::getAccountCredentials();  
    
    $url = $paymentRequest->register($credentials);
    echo '<a href="'. $url . '">PAGAR</a><br />';
    ?>
    
    
    </body>
    </html>
    


     

  3. Configurei as URLs de Retorno Automático e demais URLs no pagseguro:
    http://www.exemplo.com.br/retorno.php
    


     

  4. Configurei o parâmetro de retorno da URL
    parâmetro: trans_buy
    


    Ou seja, a URL irá retornar da seguinte forma:

    http://www.exemplo.com.br/retorno?trans_buy=0000-0000-0000-0000-0000
    


     

  5. Inseri as seguintes instruções na página de retorno:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
    <title>Retorno da Compra</title>
    </head>
    <body>
    <?php
    	try {
    		require_once "pagseguro/PagSeguroLibrary.php";
    
    		echo 'transaction code = ' .  $_GET['trans_buy'] . '<br />';
    
    		$credentials = PagSeguroConfig::getAccountCredentials();
    
    		// Código identificador da transação     
    		$transaction_id = $_GET['trans_buy'];
    
    		// Realizando uma consulta de transação a partir do código identificador  
    		// para obter o objeto Transaction 
    		$transaction = TransactionSearchService::searchByCode(  
    		    $credentials,  
    		    $transaction_id  
    		);  
    
    		// Imprime o código do status da transação
    		echo $transaction->getStatus()->getValue();
    	} catch (PagSeguroServiceException $e) {  
    	    echo $e->getHttpStatus(); // imprime o código HTTP  
    	    foreach ($e->getErrors() as $key => $error) {  
    	        echo $error->getCode(); // imprime o código do erro  
    	        echo $error->getMessage(); // imprime a mensagem do erro  
    	    }  
    	}  
    ?>
    </body>
    </html>
    


     

  6. Porém a única coisa que retorna pra mim é:
    transaction code = 0000-0000-0000-0000-0000
    


    E nada mais abaixo referente a pesquisa pelo código da transação.
     

 

 

Onde está o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.