Question:
Date: 20-06-2019 14:12:37
(In Spanish)
Mercado pago y mercadoenvios[Unresolved]
Hola buenas noches, alguien implemento mercadoenvios en una web? Tengo implementado la pasarela de pago y sobre envío solo consultó los valores. No sé cómo implementarlo en el pago. Gracias Votes: 0 - Answers: 12 - Views: 8 Share on: Google Facebook Twitter LinkedIn LinkAnswers:
-
Date: 22-06-2019 15:56:10 No lo implementé pero si comentás qué problema tenés tal vez te podamos ayudar Votes: 0 - Link answer
-
Date: 23-06-2019 08:49:45 Hola mauro como estas, gracias por responder. Se muestro como logre consultar los costos de envios hasta ahí todo bien. Mirando la implementación del pago veo que pasando los parametros debería funcionar la realidad que programar de manera estructurada y no orientada a objetos y veo muchas cosas que no quiero meter la pata.
Asi es como consulto hasta aca todo bien.
<?php $cp = $_POST["cp"]; if (empty($cp)) { echo "Ingrese un Codigo Postal"; } else{ $l = $_POST["largo"]; $a = $_POST["ancho"]; $h = $_POST["alto"]; $p = $_POST["peso"]; //$l = addslashes(htmlspecialchars($_POST["largo"])); //$p = $_GET['peso']; //$cp = $_GET['cp']; $Items="MLA733042321"; //$cp="1888"; //$l="30"; //$a="30"; //$h="30"; //$p="9000"; //Url donde esta nuestro JSON $url = "https://api.mercadolibre.com/users/79511161/shipping_options?zip_code=".$cp."&dimensions=".$l."x".$a."x".$h.",".$p.""; $cabecalho = array('Content-Type: application/json','Accept: application/json'); //Iniciamos cURL junto con la URL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $cabecalho); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //Agregamos opciones necesarias para leer curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); // Capturamos la URL $respuesta = curl_exec($ch); curl_close($ch); //Descodificamos para leer $getData = json_decode($respuesta,true); //$getData = json_decode( json_encode($respuesta), true ); if (empty($getData)) { echo "Ingrese un Codigo Postal Valido"; } else{ //print_r($getData)."<br>"; echo "<br>"."<br>"; if(isset($getData['destination']['zip_code'])){ echo "Codigo Postal: ".$getData['destination']['zip_code']."<br>"; echo "Destino: ".$getData['destination']['state']['name']."<br>"; echo "<hr>"; echo "<strong>".$getData['options'][0]['name']."<br>"."</strong>"; echo "Metodo de Envio: ".$getData['options'][0]['shipping_method_type']."<br>"; echo "Tiempo de Entrega: ".$getData['options'][0]['estimated_delivery_time']['shipping']. "Hs."."<br>"; //"Id: ".$getData['options'][0]['id']."<br>"; echo "<strong>Costo: "."$ ".$getData['options'][0]['list_cost']."<br>"."</strong>"; echo "<hr>"; echo "<strong>".$getData['options'][1]['name']."<br>"."</strong>"; echo "Metodo de Envio: ".$getData['options'][1]['shipping_method_type']."<br>"; echo "Tiempo de Entrega: ".$getData['options'][1]['estimated_delivery_time']['shipping']. "Hs."."<br>"; echo "<strong>Costo: "."$ ".$getData['options'][1]['list_cost']."<br>"."</strong>"; echo "<hr>"; echo "*La información suministra es brindada por el correo"."<br>"."<br>"; ?> <input type="button" onClick="limpiar();" id="btn_enviar" value="Nueva Busqueda"> <?php }else{ echo "Codigo Postal Inavalido"; } } } ?>
Para Implementar el pago y envio proporcionan el codigo siguiente.
<?php $preference = new MercadoPago\Preference(); $item = new MercadoPago\Item(); $item->title = "Incredible Leather Pants"; $item->quantity = 2; $item->currency_id = "ARS"; $item->unit_price = 87.01; $payer = new MercadoPago\Payer(); $payer->email = "test_user@testuser.com"; $shipments = new MercadoPago\Shipments(); $shipments->mode = "me2"; $shipments->dimensions = "30x30x30,500"; $shipment->default_shipping_method = 73328; $shipments->free_methods = array( array("id"=>73328) ); $shipments->receiver_address=array( "zip_code" => "5700", "street_number" => 123, "street_name" => "Street", "floor" => 4, "apartment" => "C" ); $preference->items = array($item); $preference->payer = $payer; $preference->shipments = $shipments; $preference->save(); ?>
Y para los cobros hasta el momento utilizaba este codigo que implemente hace bastante tiempo.
<!-- MercadoPago SDK Checkout button with MD5 hash @date 2012/03/29 @author hcasatti --> <?php // Get your Mercadopago credentials (CLIENT_ID and CLIENT_SECRET): // Argentina: https://www.mercadopago.com/mla/herramientas/aplicaciones // Brasil: https://www.mercadopago.com/mlb/ferramentas/aplicacoes // Define item data according to form $data = array ( // Required "item_title" => "Venta Online", "item_quantity" => "1", "item_unit_price" => $total, "item_currency_id" => "ARS", //Argentina: ARS, Brasil: BRL // Optional "item_id" => "CODE_012", "item_description" => "", "item_picture_url" => "Image URL", "external_reference" => "BILL_001", "payer_name" => $nombre, //nombre del comprador "payer_surname" => $apellido, //apellido del comprador "payer_email" => $email, //Email del comprador "back_url_success" => "https:/xxxxxxx/pago_exitoso.html", "back_url_pending" => "https://www.xxxxxx/pago_en_proceso.html", ); $md5String = "xxxxxxxxxxxxxxxxxxx". "xxxxxxxxxxxxxx". $data["item_quantity"]. // item_quantity $data["item_currency_id"]. // item_currency_id $data["item_unit_price"]. // item_unit_price $data["item_id"]. // item_id $data["external_reference"]; // external_reference // Get md5 hash $md5 = md5($md5String); ?> <head> <title>Checkout button with MD5 hash</title> </head> <body> <table align="center" width="20%"> <tr> <td> <form action="https://www.mercadopago.com/checkout/init" method="post" enctype="application/x-www-form-urlencoded" target=""> <!--Required authentication. Get the CLIENT_ID: Argentina: https://www.mercadopago.com/mla/herramientas/aplicaciones --> <input type="hidden" name="client_id" value="xxxxxxxxx"/> <!-- Hash MD5 --> <input type="hidden" name="md5" value="<?php echo $md5 ?>"/> <!-- Required --> <input type="hidden" name="item_title" value="<?php echo $data["item_title"]?> "/> <input type="hidden" name="item_quantity" value="<?php echo $data["item_quantity"]?>"/> <input type="hidden" name="item_currency_id" value="<?php echo $data["item_currency_id"]?>"/> <input type="hidden" name="item_unit_price" value="<?php echo $data["item_unit_price"]?>"/> <!-- Optional --> <input type="hidden" name="item_id" value="<?php echo $data["item_id"]?>"/> <input type="hidden" name="external_reference" value="<?php echo $data["external_reference"]?>"/> <input type="hidden" name="item_picture_url" value="<?php echo $data["item_picture_url"]?>"/> <input type="hidden" name="payer_name" value="<?php echo $data["payer_name"]?>"/> <input type="hidden" name="payer_surname" value="<?php echo $data["payer_surname"]?>"/> <input type="hidden" name="payer_email" value="<?php echo $data["payer_email"]?>"/> <input type="hidden" name="back_url_success" value="<?php echo $data["back_url_success"]?>"/> <input type="hidden" name="back_url_pending" value="<?php echo $data["back_url_pending"]?>"/> <!-- Checkout Button --> gt <button type="submit" class="orange-ar-l-rn-aron" name="MP-Checkout">Realizar pagó</button> </form> <!-- More info about render.js: https://developers.mercadopago.com --> <script type="text/javascript" src="http://mp-tools.mlstatic.com/buttons/render.js"></script> </td> </tr> </table>
Desde ya muchas gracias. Votes: 0 - Link answer -
Date: 23-06-2019 12:58:02 Ok. Todavía no termino de entender un par de cosas:
1 - ¿Preferís la programación Orientada a Objetos o Estructurada?
2 - ¿Qué error o dificultad estás encontrando? Votes: 0 - Link answer -
Date: 23-06-2019 15:38:26 Hola Mauro, Con la estructurada me defiendo bien pero Orientada a Objetos la realidad que no.
Haciendo pruebas en el día de Hoy con mis credenciales otorgadas por mercadopago obtengo el error.
Fatal error: Uncaught Error: Class 'MercadoPago\SDK' not found in C:\xampp\htdocs\Costa\MP_ME.php:12 Stack trace: #0 {main}.
Mi duda está en que en la documentación al descargar no solo me bajo el archivo mercadopago.php que tiene varias clases. pero también dice que hay que descargar el SDK composer y es un ejecutable, al quererlo instalar no se completa.
La realidad estoy bastante perdido.
gracias y perdón por la ignorancia. Votes: 0 - Link answer -
Date: 10-07-2020 18:26:55 Hola a todos, les consulto sobre Mercado Envios con Mercado Pago.
Actualmente tenemos implementado envios sobre MP pero durante la ultima semana dejo de funcionar y no resuelve hacia MP. Hubo algun cambio o estan experimentando este inconveniente?
Busque información pero no encontre nada al respecto.
Saludos Votes: 0 - Link answer -
Date: 11-07-2020 02:37:34 Hola Diego buenos días, yo no lo tengo implementado desde php no lo eh logrado. Solo tengo pagos. Pero desde MP creo los botones y está inavtivo mercadoenvios, si intentas crear un botón desde la web con envío vas a ver que no se puede. Entiendo que están saturados.
Si sos tan amable tenes un ejemplo como agregar el envío al pago,yo logré solo consultar costo con Curl
Gracias Votes: 0 - Link answer -
Date: 11-07-2020 09:22:34 Hola Sebastian, gracias por avisar. No gestiono la cuenta que utiliza la integración pero avisaré sobre la situacion actual.
Respecto a tu consulta, es muy facil realizar la integración.
Descarga Composer e instalalo. Luego crea un proyecto y desde CMD accede a esa carpeta y ejecuta la siguiente linea segun tu version de PHP según se indica en https://github.com/mercadopago/dx-php.
"mercadopago/dx-php:1.8.1" for PHP5.6.
"mercadopago/dx-php:2.0.0" for PHP7.
Eso te bajará la libreria de MP y lo que tienes que hacer a continuación es crear un archivo php que contenga el siguiente codigo: Votes: 0 - Link answer -
Date: 11-07-2020 09:23:37
require __DIR__ . '/vendor/autoload.php'; MercadoPago\SDK::setClientId(""); MercadoPago\SDK::setClientSecret(""); # Create a preference object $preference = new MercadoPago\Preference(); # Create an item object $item = new MercadoPago\Item(); $item->id = "1000"; $item->title = "Item de prueba"; $item->quantity = 1; $item->currency_id = "ARS"; $item->unit_price = 20; # Create a payer object $payer = new MercadoPago\Payer(); $payer->email = "prueba@hotmail.com"; # Create a shipment object $shipments = new MercadoPago\Shipments(); $shipments->mode = "me2"; $shipments->dimensions = "30x30x30,500"; # Setting preference properties $preference->items = array($item); $preference->payer = $payer; $preference->shipments = $shipments; # Save and posting preference $preference->save(); $url = $preference->init_point; header("Location: $url");
Votes: 0 - Link answer -
Date: 11-07-2020 09:23:47 Agrega las credenciales y puedes abrirlo del navegador que te redireccionará a la plataforma de MP.
Actualmente ese codigo no funciona porque tiene activo Mercado Envios. Para quitarle esa opcion y dejarlo como pago sin envios, comenta o elimina la siguiente linea: $preference->shipments = $shipments;
Cualquier cosa avisa!
Saludos,
Diego Votes: 0 - Link answer -
Date: 11-07-2020 13:06:15 Hola diego como estas, muchas gracias por la respuesta en la semana lo implementare y si se soluciona lo de ME mejor aún. muchas gracias nuevamente por tu explicación y tu tiempo. A diario creo botones de envió, si veo que se levanta te envió. Saludos Votes: 0 - Link answer
-
Date: 23-09-2021 01:43:57 Hola alguien pudo hacer funcionar ese codigo, a mi me funciona pero no me muestra las opciones de envio a la hora de pagar, solo me muestra el checkout basico. Votes: 0 - Link answer
-
Date: 23-09-2021 02:30:23 Hola augusto buenos días. Aún sigue sin estar la opción de envío en mercadopago. Quizás mercadolibre no quiero más utilizarlo por fuera. Puedo comprobarlo en crear un botón que ya no da la opción Votes: 0 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In