Ir para conteúdo

POWERED BY:

Arquivado

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

LeloTnK

[Resolvido] Erro API de Notificação

Recommended Posts

Olá pessoal,

 

Preciso de uma ajudinha, estou há um tempo tentando resolver mas até agora nada.

 

Já busquei bastante no Google e ainda não encontrei resposta.

 

Eu realizei um pagamento no pagseguro corretamente, mas não consigo fazer a integração com a API de Notificação.

 

No meu aquivo que consulta transações uso o seguinte código para fazer a consulta, lembrando que este código de transação eu peguei no meu próprio extrato de transações.

 

Eu sempre tenho o seguinte erro: Exception: XML parsing error: (4) not well-formed (invalid token);

 

$transaction_code = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX';
	try {

		$credentials = PagSeguroConfig::getAccountCredentials();
		$transaction = TransactionSearchService::searchByCode($credentials, $transaction_code);

		self::printTransaction($transaction);

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

 

 

E no meu aquivo que recebe as notificações, o notificationListener da própria biblioteca de exemplos do PagSeguro,

eu sempre recebo o seguinte erro no meu log:

 

{2011/10/31 11:07:39} [info] PaymentService.Register(PaymentRequest(Reference=mk-1-1320066459, SenderEmail=web@jurujubapublicidade.com.br)) - begin

{2011/10/31 11:07:49} [info] PaymentService.Register(PaymentRequest(Reference=mk-1-1320066459, SenderEmail=web@jurujubapublicidade.com.br)) - end {1}585956957979A2ABB484EFB6562A8E2F

{2011/10/31 11:09:15} [info] NotificationService.CheckTransaction(notificationCode=94A697-F0027C027C14-3994B26F9F12-9948D8) - begin

{2011/10/31 11:09:15} [Error] Exception: XML parsing error: (4) not well-formed (invalid token)

{2011/10/31 11:09:16} [Error] Invalid notification parameters.

 

 

 

 

Aguardo a ajuda de vocês...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui uma solução da seguinte maneira:

 

No Arquivo /utils/xmlParser.class.php

 

na função de construct eu exclui/comentei o código que faz o parse do XML.

 

era assim:

public function __construct($xml) {

	$parser = xml_parser_create();
	if (!xml_parse($parser, $xml)) {
		throw new Exception ("XML parsing error: (". xml_get_error_code($parser) .") " . xml_error_string (xml_get_error_code($parser)));
	} else {
		$this->dom = new DOMDocument();
		$this->dom->loadXml($xml);
	}
}

 

 

Ficou assim:

public function __construct($xml) {

	$this->dom = new DOMDocument();
	$this->dom->loadXml($xml);

}

 

E funcionou normal.

 

Não sei ainda o que essa alteração pode implicar, ou se cria alguma falha ou vulnerabilidade, mas com o tempo vou ficar sabendo...

 

Se alguem tiver alguma contribuição, agradeço.

 

 

Té mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudando isso pode ser que ele dêe erro de acentuação, ocorreu algum erro de acentuação?

 

Acredito que seu problema seria resolvido, entrando na pagina de configuração e alterando o charset.

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.