Ir para conteúdo

POWERED BY:

Arquivado

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

Sabtech

Pagseguro - Erro em notificação de transação com Api .Net

Recommended Posts

Estou tentando fazer uma requisição à API de Consulta de Notificações mas não sei se é esta a forma de se fazer em C# .Net tal ação, veja o código abaixo, ele gera um erro :

"System.Net.WebException: O servidor remoto retornou um erro: (400) Solicitação Incorreta.

em System.Net.HttpWebRequest.GetResponse()..."

 

                HttpWebRequest myHttpWebRequest = null;     
               HttpWebResponse myHttpWebResponse = null;                   
               XmlDocument myXMLDocument = null;           
               XmlTextReader myXMLReader = null;

               try
               {
                   //Create Request
                   myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://ws.pagseguro.uol.com.br/v2/transactions/notifications/83E85C03-AB24-4DF1-A391-FF68E478E2DA?email=davi@sabtech.com.br&token=2636E67AC46D41F8B3D39210FCC7BC41");
                   myHttpWebRequest.Method = "GET";
                   myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";

                   //Get Response
                   myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

                   //Now load the XML Document
                   myXMLDocument = new XmlDocument();

                   //Load response stream into XMLReader
                   myXMLReader = new XmlTextReader(myHttpWebResponse.GetResponseStream());
                   myXMLDocument.Load(myXMLReader);
               }
               catch (Exception myException)
               {
                   throw new Exception("Error Occurred...", myException);
               }
               finally
               {
                   myHttpWebRequest = null;
                   myHttpWebResponse = null;
                   myXMLReader = null;
               }

 

Alguém pode me ajudar a fazer a requisição de notificação e pegar os dados do XML?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tente re-inventar a roda...

O PagSeguro já tem uma lib para fazer toda essa comunicação em .NET.

 

https://pagseguro.uo...tframework.html

 

PS: Você está enviando os parâmetros via GET?

 

Na documentação diz, que o PagSeguro irá esperar esses dados via POST.

 

Eu não sou nenhum expert em .NET, sendo assim não consigo nem achar o erro no seu script, então aconselho usar a lib pronta.

 

EU já usei e sei que funfa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tente re-inventar a roda...

O PagSeguro já tem uma lib para fazer toda essa comunicação em .NET.

 

https://pagseguro.uo...tframework.html

 

PS: Você está enviando os parâmetros via GET?

 

Na documentação diz, que o PagSeguro irá esperar esses dados via POST.

 

Eu não sou nenhum expert em .NET, sendo assim não consigo nem achar o erro no seu script, então aconselho usar a lib pronta.

 

EU já usei e sei que funfa...

 

xD você tem razão a função esta pronta la na classe NotificationService.

... Usando um GET sim, porque esta buscando dados assim como o método CheckTransaction da classe NotificationService faz ...

 

Então eu testei e o código da api retorna o mesmo erro que o código descrito la em cima. Será que falta eu informar alguma outra coisa olha só:

 

              try
               {
                   AccountCredentials credentials = new AccountCredentials(
                       "davi@sabtech.com.br",
                       "EF9A383A43EF444ABC015227CB6DCD96"
                       );

                   string notificationCode = "83E85C03-AB24-4DF1-A391-FF68E478E2DA";
                   Transaction transaction = NotificationService.CheckTransaction(
                       credentials,
                       notificationCode
                   );
                   int i = transaction.TransactionStatus;
               }
               catch (PagSeguroServiceException ex) { 

               }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Manolo, você está usando a API de consulta por código de notificação e informando um código de transação.

 

Veja ambas na doc:

Código de notificação: https://pagseguro.uol.com.br/v2/guia-de-integracao/tutorial-da-biblioteca-pagseguro-netframework.html#receber-notificacoes

Código de transação: https://pagseguro.uol.com.br/v2/guia-de-integracao/tutorial-da-biblioteca-pagseguro-netframework.html#consulta-por-codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tente re-inventar a roda...

O PagSeguro já tem uma lib para fazer toda essa comunicação em .NET.

 

https://pagseguro.uo...tframework.html

 

PS: Você está enviando os parâmetros via GET?

 

Na documentação diz, que o PagSeguro irá esperar esses dados via POST.

 

Eu não sou nenhum expert em .NET, sendo assim não consigo nem achar o erro no seu script, então aconselho usar a lib pronta.

 

EU já usei e sei que funfa...

 

humm desculpa senartes estou confundindo as coisas, notificationCode é uma coisa neh? transactionCode é outra certo? no eu inverti as coisas la no código por isso não funcionou.

Por favor me ajude a entender a diferença. Olha só

 

transactionCode : "59A13D84-52DA-4AB8-B365-1E7D893052B0"

é o código gerado na conclusão da venda cujo objetivo é referenciá-la

 

notificationCode : "1"

O código que identifica a notificação

 

notificationCode quem envia é o PagSeguro através de um POST na url setada no PagSeguro. Então como é passado os valores na QueryString?Ou na Session?

tipo:

"http://lojamodelo.com.br/notificacao.aspx?&notificationCode=valor&notificationType=valor"

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PagSeguro envia o notification code para a URL cadastrada em: https://pagseguro.uo...ransacoes.jhtml

 

Os dados são enviados via post, logo não terá nada em queryString (get)

 

PS: Cara, troca seu token... acabei de testar seu token e você passou aqui um token válido... nunca se alguém fizer mal uso dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PagSeguro envia o notification code para a URL cadastrada em: https://pagseguro.uo...ransacoes.jhtml

 

Os dados são enviados via post, logo não terá nada em queryString (get)

 

PS: Cara, troca seu token... acabei de testar seu token e você passou aqui um token válido... nunca se alguém fizer mal uso dele.

certo agora entendi o esquema, é "automatico" kkk xD

e a minha aplicação só tem que tratar.

 

senartes vlw kra! Troquei o token

Obrigado pela ajuda

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.