Ir para conteúdo

POWERED BY:

Arquivado

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

ZATAN

[Resolvido] Ocorrendo um erro 400 Solicitação Incorreta nos exemp

Recommended Posts

Boa tarde, estamos aqui em processo de integração do pagseguro e estamos tendo dificuldades. Agora surgiu esse erro:

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

que ocorre após executar a linha abaixo(C# .NET)

 

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())

 

em todos os exemplos da este erro quando tenta fazer aquela requisição

alguém pode ajudar?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que tal postar o código que você está usando para que possamos ver como você está fazendo?

 

Aproveite e troque as variáveis por dados fixos, assim conseguimos testar também...

 

Dar uma lida nesse material...

http://www.checkupdown.com/status/E400_pt.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

"

Que tal postar o código que você está usando para que possamos ver como você está fazendo?

 

Aproveite e troque as variáveis por dados fixos, assim conseguimos testar também...

 

Dar uma lida nesse material...

http://www.checkupdown.com/status/E400_pt.html

"senartes" obrigado por responder...

 

Certo, entendi segue-se o código de um teste em VB semelhante ao da página do site pagseguro:

 

Private Sub F_TestePagar()
       Dim _credencial As AccountCredentials
       Dim _pagamento = New PaymentRequest
       Dim _RedirecionarURL As Uri

       Try
           _credencial = New AccountCredentials("davi@sabtech.com.br", "67E88B5D53F547249326C60BFB57B322")
           'Tipo de moeda
           _pagamento.Currency = Currency.Brl
           'Produto
           _pagamento.Items.Add(
                                New Item(
                                           "000211",
                                           "Teste",
                                           1,
                                           300.0
                                        )
                               )
           'Referência do produto
           _pagamento.Reference = "REF01234"
           'Comprador
           _pagamento.Sender = New Sender("Phíllipe", "phillipe@sabtech.com.br", New Phone("16", "3289-0151"))
           'Endereço de envio
           _pagamento.Shipping = New Shipping
           _pagamento.Shipping.Address = New Address("BRA", "SP", "Ribeirão Preto", "CENTRO", "14010-160", "São José", "234", "")
           'Gerar URL de Redirecionamento
           _RedirecionarURL = PaymentService.Register(_credencial, _pagamento)
           'Mostrar URL
            Console.WriteLine(_RedirecionarURL)
       Catch ex As Exception

       End Try
   End Sub 

Não sei porque as 3 últimas linhas ficaram comentadas mas no meu source elas não estão.

Observação: Na hora que adiciona um item existe uma expressão ao lado do valor do produto:

 

payment.Items.Add(  
   new Item(  
       "0002",  
       "Mochila",   
       1,   
       150.99m
   )  
); 

 

"150.99m", "m" é uma expressão inválida em .NET, o Visual Studio não aceita isso.

 

Agora este é o código c# do exemplo que baixei do site veja:

 

static void Main(string[] args)
       {
           // TODO: Substitute the parameters below with your credentials
           AccountCredentials credentials = new AccountCredentials("davi@sabtech.com.br", "EAB8E882C92C4A6994D18338106385F6");

           try
           {
               PaymentRequest payment = new PaymentRequest();
               payment.Currency = Currency.Brl;

               payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430, 1000, 0));
               payment.Items.Add(new Item("0002", "Notebook Rosa", 2, 2560, 750, 0));

               payment.Reference = "REF1234";
               payment.Shipping = new Shipping();
               payment.Shipping.ShippingType = ShippingType.Sedex;
               payment.Shipping.Address = new Address("BRA", "SP", "Sao Paulo", "Jardim Paulistano", "01452002", "Av. Brig. Faria Lima", "1384", "5o andar");
               payment.Sender = new Sender("Joao Comprador", "phillipe@sabtech.com.br", new Phone("11", "56273440"));

               Uri paymentRedirectUri = PaymentService.Register(credentials, payment);

               Console.WriteLine(paymentRedirectUri);
           }
           catch (PagSeguroServiceException exception)
           {
               if (exception.StatusCode == HttpStatusCode.Unauthorized)
               {
                   Console.WriteLine("Unauthorized: please verify if the credentials used in the web service call are correct.\n");
               }

               Console.WriteLine(exception);
           }
       }

 

Aqui está a string request que o código monta :

urib.jpg

Aqui está o erro na classe PaymentService , este erro ocorre não só na classe PaymentService mas também nas outras classes que fazem a mesma requisição ao webservice.Veja o erro da classe PaymentService:

errorequest.jpg

 

Será que no meu projeto o endereço do webservice precisa ser declarado? Qual o endereço deste webservice da pagseguro?

Será que o webservice está inativo?

 

Alguém sabe se estas questões fazem algum sentido?

 

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara,

eu baixei a biblioteca e fiz a requisição e no item eu inseri

payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430m, 1000, 0));

 

Aqui funcionou de boas...

 

Baixa o exemplo e só insere seu e-mail token, coloca o "m" como mostrado, e tenta rodar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara,

eu baixei a biblioteca e fiz a requisição e no item eu inseri

payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430m, 1000, 0));

 

Aqui funcionou de boas...

 

Baixa o exemplo e só insere seu e-mail token, coloca o "m" como mostrado, e tenta rodar...

 

kra fiz o que você mandou, a expressão "m" agora o Visual Studio está aceitando mas o erro ainda continua na execução local ou no servidor web (locaweb)

 

protected void Page_Load(object sender, EventArgs e)
       {
           // TODO: Substitute the parameters below with your credentials
           AccountCredentials credentials = new AccountCredentials("davi@sabtech.com.br", "43ED7D7D390248BCAA25B1B7D3638274");

           try
           {
               PaymentRequest payment = new PaymentRequest();
               payment.Currency = Currency.Brl;

               payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430m, 1000, 0));
               payment.Items.Add(new Item("0002", "Notebook Azul", 2, 2560m, 750, 0));

               payment.Reference = "REF1234";
               payment.Shipping = new Shipping();
               payment.Shipping.ShippingType = ShippingType.Sedex;
               payment.Shipping.Address = new Address("BRA", "SP", "Sao Paulo", "Jardim Paulistano", "01452002", "Av. Brig. Faria Lima", "1384", "5o andar");
               payment.Sender = new Sender("Joao Comprador", "phillipe@sabtech.com.br", new Phone("11", "56273440"));

               Uri paymentRedirectUri = PaymentService.Register(credentials, payment);
               //Console.WriteLine(paymentRedirectUri);  
               ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", "alert('Funcionou');", true);
           }
           catch (PagSeguroServiceException exception)
           {
               if (exception.StatusCode == HttpStatusCode.Unauthorized)
               {
                   Console.WriteLine("Unauthorized: please verify if the credentials used in the web service call are correct.\n");
               }
               //Console.WriteLine(paymentRedirectUri);
               ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", "alert('Não Funcionou - " + exception.Message + "');", true);
           }
       }

 

Se fosse só local eu diria que o problema é aqui mas no servidor web também, então esta faltando alguma coisa

 

Se vocês tiverem idéia postem ai

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra fiz o que você mandou, a expressão "m" agora o Visual Studio está aceitando mas o erro ainda continua na execução local ou no servidor web (locaweb)

 

protected void Page_Load(object sender, EventArgs e)
       {
           // TODO: Substitute the parameters below with your credentials
           AccountCredentials credentials = new AccountCredentials("davi@sabtech.com.br", "43ED7D7D390248BCAA25B1B7D3638274");

           try
           {
               PaymentRequest payment = new PaymentRequest();
               payment.Currency = Currency.Brl;

               payment.Items.Add(new Item("0001", "Notebook Prata", 1, 2430m, 1000, 0));
               payment.Items.Add(new Item("0002", "Notebook Azul", 2, 2560m, 750, 0));

               payment.Reference = "REF1234";
               payment.Shipping = new Shipping();
               payment.Shipping.ShippingType = ShippingType.Sedex;
               payment.Shipping.Address = new Address("BRA", "SP", "Sao Paulo", "Jardim Paulistano", "01452002", "Av. Brig. Faria Lima", "1384", "5o andar");
               payment.Sender = new Sender("Joao Comprador", "phillipe@sabtech.com.br", new Phone("11", "56273440"));

               Uri paymentRedirectUri = PaymentService.Register(credentials, payment);
               //Console.WriteLine(paymentRedirectUri);  
               ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", "alert('Funcionou');", true);
           }
           catch (PagSeguroServiceException exception)
           {
               if (exception.StatusCode == HttpStatusCode.Unauthorized)
               {
                   Console.WriteLine("Unauthorized: please verify if the credentials used in the web service call are correct.\n");
               }
               //Console.WriteLine(paymentRedirectUri);
               ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "", "alert('Não Funcionou - " + exception.Message + "');", true);
           }
       }

 

Se fosse só local eu diria que o problema é aqui mas no servidor web também, então esta faltando alguma coisa

 

Se vocês tiverem idéia postem ai

Muito Obrigado

 

Agora funcionou assim :

 

payment.Items.Add(new Item("0001", "Notebook Prata", 1, 430.00m, 1000, 10.00m));

 

Nas funções onde o parâmetros é do tipo System.Decimal será necessário informar a letra "m" que torna o decimal em real. Peço desculpas pelo equivoco la em cima a letra "m" existe sim:

 

http://msdn.microsoft.com/en-us/library/364x0z75(v=vs.80).aspx

Nunca tinha visto sua utilização até agora. Vivendo e aprendendo XD kkk

 

Está tudo funcionando. Da tocar o barco agora.

 

 

vlw Obrigado!

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.