DAM_RICO

Members
  • Content Count

    2
  • Joined

  • Last visited

Posts posted by DAM_RICO


  1. 1 hour ago, Fernando Aguirre said:

    Hola.

    Antes que nada, no es problema del SDK de php, ni de las notificaciones ni nada de ML, es algo mas enfocado a tu logica de codigo.

    Te van a venir a decir que aqui es solo ML y no MP, pero bueno.

    ML al generar una orden va a enviar vairas notificaciones en un periodo de unos 10 a 20 segundos, puede enviarte hasta unas 5 a 10 distintas. Esto es debido a que se actualiza el status de la orden en sus diferentes pasos a seguir (pago, aprobacion de este, generacion del envio, generacion de guia de envio, etc) por lo que ya depende de tu script controlar la informacion que recibes.

    Te recomiendo utilizar algun sleep, crear una cola en tu BD, las columnas de order id o payment id hacerlas unicas para que no tengas informacion repetida, etc.

    El SDK es solo un puente entre la API y tu sistema y tu simplemente tienes que manejar bien la informacion que recibes.

    Y no quiero que sientas que fui grosero, de ninguna manera es mi cometido. Pero si van a venir a decirte que este no es un foro de Mercadopago.

    Creo que en google tienen un foro de soporte.

    Saludos

    Gracias! La verdad no sabía que era únicamente para Mercado Libre.

    No veo nada de grosero en tu comentario, al contrario, muy respetuoso. 

    Gracias por hacerme entender cómo funciona la parte de notificaciones con el SDK. 

    Saludos!


  2.  

    Hola! Estoy en la etapa final de la implementacion del sdk de mercadopago con php, para el checkout basico.

     
    El unico problema que estoy teniendo es que al momento de recibir la notificacion, quiero actualizar unas cosas en mi base de datos pero se hace de forma erronea o directamente no se hace. 
     
    De esta manera, es como si no entrara en el ultimo " if". Si quito el ultimo foreach, y solo dejo la variable $datos creada, funciona pero me lo registra dos veces si es un unico item (y si son dos item, el primero registra doble pero el segundo no lo registra). He comprobado en todos los pasos anteriores a llegar a la url de notificaciones que los datos de la preferencia de pago esté correcta y los datos de la respuesta sean correctos. Por lo tanto, no entiendo qué sucede.
     
    Si creen que la parte en donde llevo esa variable $datos esta mal hecha y por eso no funciona, no es asi. He hecho lo mismo con otros medios de pago y funciona bien.
     
    $merchant_order = null;
    $id = $_GET['id'];
    
    
    if ( $_GET["topic"] == "payment" ) {
    
    
        $payment = MercadoPago\Payment::find_by_id($id);
        $id = $payment->order_id;
    }
    
    
    $merchant_order = MercadoPago\MerchantOrder::find_by_id($id);
    
    
    $paid_amount = 0;
    
    
    foreach ($merchant_order->payments as $payment) {
    
    
        if ( $payment['status'] == 'approved' ) {
    
    
            $paid_amount += $payment['transaction_amount'];
                    
        }
    
    
    }
    
    if ( $paid_amount >= $merchant_order->total_amount ) {
    
        id_usuario = $merchant_order->payer->id;
    
        foreach ($merchant_order->items as $item) {
    
        $datos = array("vendedor" => id_usuario,
                       "precio" => $item->quantity); 
    
        $respuesta=ControladorCarrito::ctrNuevasComprasEfectivoTotal($datos);
    
       }
    
    }