rafael

Members
  • Content Count

    9
  • Joined

  • Last visited

  • Days Won

    1
  1. Já descobri pessoal. Na order não vem mas dá para consultar detalhes em ("orders/" & order_id & "/shipments")
  2. Pessoal, Porque o bairro não é disponibilizado para captura do pedido ?
  3. Pessoal, Se uma compra é realizada via boleto bancário o mercadolivre não emite qualquer notificação, seja pela API ou mesmo no painel do ML e o produto permanece ativo. Minha dúvida é.. se eu disponibilizei 1 unidade de um produto e vários clientes compram no mesmo dia via boleto. Se todos pagarem isso vai me gerar um estoque negativo ? Como o mercadolivre lida com isso ?
  4. Pessoal, Não estou sabendo quais parâmetros são enviados com o post do ML. Mandei minha página capturar todos os parâmetros enviados via post e get e nada foi registrado. O que o ML passa junto com a URL de notificação de eventos ?
  5. Pessoal, Finalmente consegui entender a lógica do negócio e achei meu erro. Eu havia entendido que a autenticação é um processo que precisava ser feito sempre que fosse acessar qualquer coisa do ML mas na verdade a lógica é outra. Se alguém passar pela mesma dificuldade segue o que entendi e o que deu certo para mim. Administradores fiquem a vontade para corrigir se estiver errado. 1 - Acessa https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id="& ClientId & "&redirect_uri=" 2 - Esta URL vai retornar para a url do parâmetro redirect_uri com um parâmetro chamado CODE 3 - Fazer um post para /oauth/token?grant_type=authorization_code&client_id={client_id}&client_secret={client_secret}&code={code}&redirect_uri={redirect_uri}" com o CODE recebido 4 - este post vai retornar um json com access_token e refresh_token. Estes dois dados devem ser salvos no banco de dados Agora na hora de acionar qualquer método da API basta instanciar a classe passando o cliente_id, secret_id e o acess token e usar o método normalmente. E quando o token expirar, deve usar o /oauth/token?grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token} com o REFRESH TOKEN para obter um novo token e um novo refresh token que devem ser salvos no banco de dados. Abralos
  6. Rodrigo, Achei na API como obter o token via server side mas quando tento acionar ele reclama que o code está expirado e para obter um novo só consigo via post para aquela URL que tem acima. Isso ocorre toda hora.. Passa alguns minutos e ele expira e faz eu gerar outro CODE. Ainda estou confuso com este processo de autenticação. Pelo que entendi primeiro é preciso obter o CODE e isso é sempre via post e client side. ( este code não deveria ser único e eu só precisar autorizar uma vez ?? ) Depois de obtido o code é feito um post para obter o access_token e o refresh_token Depois tem uma informação muito esquisita na documentação que explica que usa o refresh_token pra obter outro refresh_token , e aí eu não entendi mais nada : >Once the access token expires, a consumer can use the refresh token to refresh that token and get a new *refresh_token* to refresh it again when it expires. Será que alguém consegue me dar uma explicação mais clara sobre isso ? Porque quando mando autenticar ele fica me obrigando a gerar novo CODE toda hora ?
  7. Rodrigo, desculpe mas não entendi como funciona o processo de autenticação sem redirect. Atualmente antes de enviar um produto para o mercadolivre eu faço este processo de autenticação que envio abaixo : Function autenticar(ByVal conexao As conexao) As Boolean Dim client_id As String Dim client_secret As String Dim code As String Using MarketPlace As New MarketPlace(conexao) With MarketPlace .ID = MarketPlaces.mercadolivre .CarregarDados() client_id = .usuario.Trim client_secret = .senha.Trim code = .token.Trim End With End Using ML = New MercadoLivre.MercadoLivre(client_id, client_secret) Try ML.Authorize(code, Empresa.url & "/marketplace/mercadolivre_autorizar.aspx") Return True Catch ex As Exception Response.Write("o token não é mais válido, tem que autenticar novamente") Return False End Try Return False End Function Quando ele não autoriza eu faço isso : Dim ML As MercadoLivre.MercadoLivre = New MercadoLivre.MercadoLivre(client_id, client_secret) Dim redirectUrl As String = ML.GetAuthUrl(Empresa.url & "/marketplace/mercadolivre_autorizar.aspx") Response.Redirect(redirectUrl) Como é que eu consigo o token sem ser por este processo do getAuthURL ? Obrigado
  8. Senhores, boa noite. Trabalhamos com uma ferramenta que envia os produtos de nossos clientes para diversos marketplaces e o processo de seleção de categorias do mercadolivre ocorre após digitação de todos os dados do produto no nosso sistema. Ocorre que ao chegar na parte de seleção das categorias o token pode ter expirado ou pode existir qualquer problema e com isso precisamos autenticar novamente e aí começa o problema. A autenticação do mercadopago não ocorre por trás, exigindo que nós façamos uma chamada para o endereço de autenticação e este endereço retorna com o code na querystring e isso quebra toda nossa lógica. A solução que criamos foi : Se ao chegar na parte de digitação de dados o token tiver expirado, surge um botão que ao ser clicado abre um pop-up onde o usuário irá fazer a autenticação. Após autenticação o mercadopago retorna para uma página específica e salvamos o code em banco de dados para então usarmos no restante da aplicação porém, por alguma razão que não entendemos, nós só conseguimos usar o token gerado , dentro da própria página de redirecionamento. Se eu chamar isso : ML.Authorize(code, "http://XXXX.com.br/marketplace/autenticacao.aspx")e salvar o code no banco, eu não consigo abrir uma página chamada cadastro.aspx e usar este token, mas em compensação o mesmo código da www.com.br/cadastro.aspx , se estiver na autenticacao.aspx roda normalmente. Por acaso o token do mercadolivre não é válido para toda a aplicação ? Cada página que vai usar o código precisa de uma autorização ?
  9. Pessoal, Nos exemplos que encontrei o body é passado utilizando um tipo de declaração que não funciona com vb com asp.net 2.0 Estou tentando passar como string mesmo mas não tem maneiras de funcionar. Será que alguém poderia me ajudar ? Dim r As IRestResponse = ML.Post("/items", lista, body) Já tentei passar o body de várias maneiras, como nos exemplos abaixo body = "new {""parametro_nome"":""valor""}" body = "{""parametro_nome"":""valor""}" body = """parametro_nome"":""valor""" Alguém sabe como passar este body usando vb.net com asp.net 2.0 ? Obrigado