Yii Framework Forum: Retorno Automático Pagseguro - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Retorno Automático Pagseguro Rate Topic: -----

#1 User is offline   Gaúcho 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 17-December 12

Posted 10 May 2013 - 12:52 PM

Amigos, sei que existem tópicos sobre o assunto, porém vi que já são um poco antinguinhos e preciso muito de uma ajudinha.

Eu criei o retorno automático, porém nos testes que realizei o status da transação não está sendo editada no meu sistema.

public function actionRetornoPagseguro()
{
	$code = (isset($_POST['notificationCode']) && trim($_POST['notificationCode']) !== ""  ? trim($_POST['notificationCode']) : null);
	$type = (isset($_POST['notificationType']) && trim($_POST['notificationType']) !== ""  ? trim($_POST['notificationType']) : null);

	if ( $code && $type ) {

		$notificationType = new PagSeguroNotificationType($type);
		$strType = $notificationType->getTypeFromValue();

		switch($strType) {

			case 'TRANSACTION':
				$credentials = new PagSeguroAccountCredentials($email, $token);

				try {
					$transaction = PagSeguroNotificationService::checkTransaction($credentials, $code);

					$transactionStatus = $transaction->getStatus(); //Status da transação
					$id_pedido = $transaction->getReference(); //Código de referência da transação

					$model = Fatura::model()->findByPk($id_pedido);

					switch ($transactionStatus->getTypeFromValue()) {
						case 'WAITING_PAYMENT':
							$model->status = "Em Aberto";
							break;
						case 'IN_ANALYSIS':
							$model->status = "Em Análise";
							break;
						case 'PAID':
							$model->status = "Paga";
							break;
						case 'AVAILABLE':
							$model->status = "Completa";
							break;
						case 'IN_DISPUTE':
							$model->status = "Em Disputa";
							break;
						case 'REFUNDED':
							$model->status = "Devolvida";
							break;
						case 'CANCELLED':
							$model->status = "Cancelada";
							break;
					}

					if ($model->validate()) {

						$model->save()
					}
				} catch (PagSeguroServiceException $e) {
					die($e->getMessage());
				}
				break;

			default:
				LogPagSeguro::error("Unknown notification type [".$notificationType->getValue()."]");

		}

		self::printLog($strType);

	} else {

		LogPagSeguro::error("Invalid notification parameters.");
		self::printLog();
	}
}


Se alguém puder me ajudar dizendo por que não está salvando o status eu agradeço =)

Abraços
0

#2 User is offline   Gaúcho 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 17-December 12

Posted 10 May 2013 - 12:53 PM

Ah sim, outra pergunta... como posso realizar testes sem precisar realizar o pagamento no PagSeguro?
0

#3 User is offline   Gustavo Andrade 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 128
  • Joined: 16-August 11
  • Location:Brazil - MG

Posted 11 May 2013 - 04:14 PM

View PostMarnei, on 10 May 2013 - 12:53 PM, said:

Ah sim, outra pergunta... como posso realizar testes sem precisar realizar o pagamento no PagSeguro?


Tem o Ambiente de testes: http://pagseguro.vis...-testes-locais/

:D
0

#4 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 824
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 11 May 2013 - 11:28 PM

Marnei,

PagSeguro não tem sandbox, todos os testes tem que ser feito por pagamento. Existem alguns número de cartão de crédito que a operadora oferece para teste.
http://www.uolhost.c...ndo-o-pagseguro

Como estou vendo, você ta usando a V2 da API, então o Teste de Ambiente que o Gustavo passou não irá funcionar, ela só funciona para V1.

Só uma dúvida:
$id_pedido = $transaction->getReference();


Está variável, você esta enviando somente o ID do Fatura? Ou está enviando mais alguns dados na referência?

Uma ajuda no seu código, coloca um log de validação no seu código, antes do $model->validate(), pode ter algum campo obrigatório que precisa ser preenchido.

Ex.:
...
Yii::log('PagSeguro: ' . CActiveForm::validate($model));
if ($model->validate()) {
...


Este log é gravado em /protected/runtime/application.log
Newerton Vargas de Araújo
0

#5 User is offline   Dyego Nery 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 105
  • Joined: 26-August 11

Posted 20 May 2013 - 01:11 PM

Só pra alertar. Pelo menos comigo isso tem ocorrido as vezes, sem nenhum motivo aparente.

Como disse o Newerton, no envio do pagamento...vc ta passando o codigo da fatura do seu sistema?

Abraço
http://www.emuitocarro.com.br - Classificado Online de Veículos


http://www.yiibrasil.com.br - Blog com dicas e tutoriais sobre o Yii Framework.
0

#6 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 824
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 20 May 2013 - 10:55 PM

Achei hoje esse arquivos para teste local.

https://github.com/b...ambiente-testes
Newerton Vargas de Araújo
1

#7 User is offline   Gustavo Andrade 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 128
  • Joined: 16-August 11
  • Location:Brazil - MG

Posted 21 May 2013 - 06:21 PM

View PostNewerton, on 20 May 2013 - 10:55 PM, said:

Achei hoje esse arquivos para teste local.

https://github.com/b...ambiente-testes



Parece bacana hein! ^^
Vou dar uma olhada!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users