rodrigojob

Moderators
  • Content Count

    1,495
  • Joined

  • Last visited

  • Days Won

    220

Everything posted by rodrigojob

  1. Olá Thiago, você disse que passou os dados, e nem deve mostrá-los aqui, mas vou destrinchar: grant_type=authorization_code client_id=999999 // seu user_id do ML, o código numérico que é referente ao seu login client_secret=0df0sd23j4bwdivuyf3j4nb5 //é o código da aplicação (appid) não entendo o motivo do ML ter trocado os nomes! code=098347r8d9d8v7i34m\nxoiuy4/ur3iwedjks34 //esta informação já vem de um passo anterior redirect_uri=http%3A%2F%2Fwww.seusite.com.br%2FML%2Flogin.php // é a URL com encode Então o problema pode ser a URL que você está fornecendo. parece que tem um $, pode ser quando você repassou para cá e tirou as variáveis. Veja aí Rodrigo
  2. Olá Pessoal, fui mexer numa coisa que eu queria fazer, ainda na antiga API, que é a manipulação de "comentários" na venda. O comentário é um texto qualquer que você pode inserir no registro de venda que o comprador não verá, mas serve para você fazer uma marcação, por exemplo a operadora de telefonia. Dã! Qualquer coisa. Bem, mãos a massa! Abaixo estão os códigos de como listar, criar, alterar e apagar um comentário Está em PHP. $id = $_REQUEST['orderId']; $params = array('seller' =>999999999999, 'access_token' => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxx-xxxxxxxxx); echo 'parametros: <br>'; print_r($params); //simplesmente listar o que já existe - eu criei pelo browser um comentário, poderia ter feito pela API. echo '<br><br>listar original: <br>'; $listar1 = $meli->get('/orders/'. $id. '/notes/', $params); print_r($listar1); //alteração - observe que é um array, e o último comentário adicionado é o item 0 do array. Neste exemplo eu adiciono informação sem apagar, claro que você pode substituir o que está lá. echo '<br><br>alteracao: ' . (string)$listar1['body'][0]->results[0]->id . '<br>'; $alterar = $meli->put('/orders/'. $id. '/notes/' . (string)$listar1['body'][0]->results[0]->id, array('id'=>(string)$listar1['body'][0]->results[0]->id, 'note' => (string)$listar1['body'][0]->results[0]->note . '- tadá!!!! ' . date('Y-m-d h:i:s')), $params); print_r($alterar); //criar: quando criado um novo comentário este passa a ser o 0, e os demais são empurrados para baixo echo '<br><br>criar novo: <br>'; $criar = $meli->post('/orders/'. $id. '/notes/', array('note' => 'novo - ' . date('Y-m-d h:i:s')), $params); print_r($criar); //listar para verrificar o que foi feito(dã), mas aqui dá para ver o que aconteceu com o array. echo '<br><br>listar refeito: <br>'; $listar2 = $meli->get('/orders/'. $id. '/notes/', $params); print_r($listar2); //apagar: indicando qual o item a ser apagado ou serão todos apagados se deixar vazio echo '<br><br>apagar: <br>'; $apagar = $meli->delete('/orders/'. $id. '/notes/' . (string)$listar2['body'][0]->results[0]->id, $params); print_r($apagar); //relistar: deve retornar o registro do segundo passo, pois o registro inicial foi alterado echo '<br><br>listar final: <br>'; $listar3 = $meli->get('/orders/'. $id. '/notes/', $params); print_r($listar3); unset($retorno); unset($listar1); unset($alterar); unset($criar); unset($listar2); unset($apagar); unset($listar3); unset($params); unset($meli); Até mais Rodrigo
  3. Olá, sempre trabalhei com latin1 e iso-8859-1 (ou windows-1252), para manter a lusofonia em voga! Mas .... como o retorno da API MELI é em utf-8 e o iso-8859-1 encerrou o suporte foi necessário fazer a migração e mudar costumes (não conceitos!). Na alteração já passei a base de dados para utf-8. Começaram a aparecer os caracteres especiais e tentei resolver com htmlentities e htmlspecialchars do PHP, mas só se resolviam colocando 2 coisas nas páginas: ---------início-do-código------------------ <?php header('Content-Type: text/html; charset=utf-8',true); ?> <header> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </header> ----------fim-do-código------------- Resolvido! Não!!!!!! na base começaram a aparecer caracteres estranhos. (ai, ai) eu tinha ignorado, mas quando acesso a base vejo aquela sujeira e não gosto, fora que penso que gasta mais espaço de BD. Me irritei e encontrei um post no stackoverflow com a solução simples: mysql_set_charset('utf8', $conn); Tudo passou a funcionar bem. Muitos já deviam saber disso! Eu não sabia e não havia percebido isto em nenhuma das pesquisas anteriores(é óbvio). Sei que tem um post aqui perguntando por isso, mas não encontrei. Até mais Rodrigo
  4. hello TOM, the MeLi sell listings. If your listing end is better. Have relist automatic. I see you later Rodrigo
  5. Olá, estou refazendo meus gets e para redução das consultas peguei apenas as vendas que não tenho gravadas em BD e separei os código de envio(shipment_id). Percebi que não é possível fazer a consulta de múltiplos envios(shipments). Isto está certo? Achei que já havia visto isto. Até mais Rodrigo
  6. Quando será enviado um convite cortesia ao pessoal que participa e contribui ativamente do fórum? Preciso me agendar
  7. Olá, mais uma vez há alterações não reportadas que influenciam no funcionamento. Eu tinha uma consulta em PHP com a seguinte pesquisa: $frete = $meli -> get('/shipments', array('seller' => $usuarioid, 'access_token' => $access_token, 'id'=> $shippingid)); Usar o ID como variável não retorna mais nada, não vi isto ser reportado com antecedência, assim causou impacto em sistemas em produção. Agora só funciona assim: $frete = $meli -> get('/shipments/' . $shippingid, array('seller' => $usuarioid, 'access_token' => $access_token)); Para verificar o que ocorria eu abri manualmente os dados e tive uma surpresa com campos novos(desconhecidos por mim): "tracking_method": "eSedex" "cost_components": - { "special_discount": 0, }, este eu já tinha visto e é uma solicitação antiga que eu, mas também não vi reporte da adição, é a separação de logradouro, numeral e cidade. Que agora tem até o bairro. ótimo para gerar NF. "address_line": "rua xxxxxxxxx de jjjjjjjjj 624", "street_name": "rua xxxxxxxxx de jjjjjjjjj", "street_number": "624", "comment": "626", "city": - { "id": "BR-SP-44", "name": "São Paulo", }, "state": - { "id": "BR-SP", "name": "São Paulo", }, "country": - { "id": "BR", "name": "Brasil", }, "neighborhood": - { "id": null, "name": "Vila Monte Alegre", }, este eu não entendi: "municipality": - { "id": null, "name": null, }, Este é um tiro no pé: "estimated_delivery": Porque o usuário vê a data e acha que receberá e quer receber na data prevista, mas usa Boleto e agendou para o vencimento.... Tem melhoras, sem dúvida. Mas avisem, podemos usufruir melhor das ferramentas, isto é falta de documentar! Até mais Rodrigo
  8. Solari, but in purchase whit "to_be_agree" or when the buyer select 'combine with the seller' don't have shipping_id. Thanks
  9. Se você migrou de servidor deve trocar na aplicação do ML o endereço de retorno que tem permissão de usar a aplicação para autenticação. Lembrou disto?
  10. Solari, o que ele quer saber é a situação de um envio, combinado com o vendedor como é inserida a informação do tiopo de envio, rastreamento, data de entrega prevista e data de saída. Esta pergunta sempre é refeita no fórum. Está na hora de implementarem, pois isto indica que o Mercado está querendo. Até mais Rodrigo
  11. Hollas, quando você cria o anúncio define o valor do frete ou tem o MercadoEnvios, se não define nada o anúncio tem o "a combinar com o vendedor", o que você chama de "a convenir". Se habilitou o "retirar pessoalmente", então pode estar com esta condição. Eu não observei isto em produção, mas o caminho pode ser este. Até mais Rodrigo
  12. eu tenho a solução para o MercadoEnvios em PHP, mas acho que já conseguiu fazer
  13. Olá Juan, primeiro, se você desse um print_r em $result saberia que o resultado vem em array, não em JSON. O que é estranho, pois tudo deveria vir em JSON. Então veja a mudança: $result = $meli->get('/sites/MLA'); print_r($result); //para verificar o que retornou, depois você retira echo '<br><br>'; // só para separar $result = json_decode($result); $result = $result['body']; echo "<ul>"; var_dump($result); foreach($result as $r) { echo "<li>"; echo $r["id"]; echo "</li>"; } echo "</ul>"; $result = $result['body']->id; //exemplo se você quiser pegar apenas o id até mais
  14. Olá Rodrigo (xará), não liberam o número da PLP e da NF via API, não tem sentido, mas não fazem. Avisa se não resolveu o cálculo, eu tenho em PHP Até mais
  15. olá Ronaldo, não tem mais esta função e não há necessidade de fazer logout, só é possível acessar os dados se tiverem as chaves, sempre. Eu fiz uso de logout para testes, ( www.mercadolivre.com.br/jm/logout ), esta já funciona para expirar tudo. Mas não é boa ideia. (sou da época que ideia era acentuada, é difícil mudar.) Até mais Rodrigo
  16. filtra!!! Uma coisa é identificar para que serve e outra é se já foi tratada. Grave as infos como ID e resource, para não tratar 2 vezes a mesma coisa. Outra coisa para não ter chuva de notificações que não quer tratar é só configurar o que você deseja receber. Numa venda você é notificado da venda, do item e posteriormente do pagamento. Se o item encerra é só do item. Se o pagamento é executado após 5 dias é só do pagamento. Mas será que precisa de todos? Eu não preciso. Até mais Rodrigo
  17. opa... de novo não percebi que você já tinha tratado o expires_in, mas seu objeto $user está zerado. Qual a resposta deste $user?
  18. Root: não disponibilizar o access_token no site! Básico: o seu expires_in sempre será pequeno(menor que o objeto time), pois ele está em minutos, então você tem que fazer o cálculo na hora da geração e adicionar o valor do expires_in e depois fazer o cálculo entre a hora atual (time) e o valor gravado. dúvidas: depois de mudar o código o que aconteceu? Qual a resposta do servidor? Quais os passos de código foram acionados? Faça um debug tabajara por passo, coloque uns echo no código. ex: 'gera 1', 'gera 2', 'refresh 1', 'refresh 2'. Quando quero verificar o andamento do código faço isto: $x = $nmeli->authorize('http://www.xxxxxxxxxxxxxxxxxxxx.com.br/xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxx.php'); // echo "meli - refresh: <br>" ; // print_r($x); // echo "<br>--meli<br>" ; $token = $nmeli->refreshAccessToken(); // echo 'refresca token--<br>'; // print_r($token); // echo '<br>--refresca token<br>'; // echo '<br>verifica token--<br>'; // print_r($token); // echo '<br>novo token--<br>'; $nntoken = $this->grava($token['body'][0], $token['body'][1], $conex, $token['body']->expires_in); $at = $nntoken['body'][0]; // print_r($at); // echo '<br>--token<br>'; return $at;
  19. outra! $token_row['refresh_token'] < time() isto está certo? Não seria o expires_in??
  20. vi meu código e antes do passo do refresh_token tenho um authorize, mas nem sei porque. $auth = $meli->authorize('http://www.xxxxxxxxxxxxxxxxx.com.br/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx.php'); //este é o script que tem um processo do $_GET['code'] de login $refresh = $meli->refreshAccessToken();
  21. Wesley, eu remontei, mas ainda tenho dados manuais. Agora só preciso da PLP já conversei com o pessoal dos Correios e eles indicaram que eu posso ignorar as outras infos. Até mais Rodrigo
  22. verify if the return data are being recorded correctly in DB, because the message is indicating that refresh token may be expired or it was already used. USED!!!
  23. coloque uns echo no caminho e veja onde para. um debug forçado. mas acho que encontrei o erro. faltou aspas em: $user_id = $user[body]->id; o correto é: $user_id = $user['body']->id;
  24. of course that this is a example. We will can exclude any regions. BR-SE, BR-SO, .. I believe that is necessary the info about acronym of regions. thanks a lot