mercadopago / DEPRECATED-sdk-php

DEPRECATED - MercadoPago PHP SDK
MIT License
1 stars 10 forks source link

Ayuda pagos recurrentes! No puedo hacerlos funcionar. #56

Closed Niko-EstudioBL closed 5 years ago

Niko-EstudioBL commented 8 years ago

Buenas!

Estoy intentando realizar pagos recurrentes. Siguiendo el ejemplo publicado por MercadoPago, y viendo codigos publicados por demas desarrolladores (en su mayoria en la misma posicion que yo), hasta el momento no pude hacerlo funcionar.

La pagina con el boton de la apertura del modal, para comenzar con el tramite, me queda en blanco, no carga.

Alguna solucion viable?

Espero puedan tirarme alguna soga. Muchas gracias de antemano. Saludos!

matiasgordon commented 8 years ago

Hola Niko, qué versión de PHP utilizas? Tienes activado Curl?

Por favor copia aquí el código php que utilizas (no incluyas tus credenciales).

Saludos!

Niko-EstudioBL commented 8 years ago

Buenas Matias, gracias por la atencion! Utilizo la version 5.6, cURL support = enabled

No estoy usando mas que el codigo que figura en la documentacion oficial. Fui probando otras cosas, modificando, buscando info de otros desarrolladores, pero el resultado siempre fue el mismo.

<?php require_once('../../lib/mercadopago.php');

$mp = new MP('XXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');

//$mp->sandbox_mode(FALSE);

$preapproval_data = array( "payer_email" => "client@email.com", "back_url" => "http://site.com/response.php", "reason" => "XXXXXXX", "external_reference" => "XXXXX", "auto_recurring" => array( "frequency" => 1, "frequency_type" => "months", "transaction_amount" => 50, "currency_id" => "ARS", "start_date" => NULL, "end_date" => NULL ) );

$preapproval = $mp->create_preapproval_payment ($preapproval_data);

?>

matiasgordon commented 8 years ago

@Niko-EstudioBL, el código es correcto...

Tienes el archivo cacert.pem dentro de la carpeta lib?

Por favor descarga los siguientes archivos a tu servidor y ejecuta los php, para verificar si tienes algún problema de conexión con nuestra API: https://github.com/matiasgordon/mp-tls-test

Saludos,

Niko-EstudioBL commented 8 years ago

Sisi, el .pem esta bien ubicado en lib.

Acabo de descargar los archivos, y ejecute cada uno, conectaron correctamente, ningun error presente.

Niko-EstudioBL commented 8 years ago

Ninguna posible solucion? Voy a tener que pasarme a otro servicio, verdaderamente no puedo parar por mas tiempo el desarrollo de la aplicacion. Muchas gracias de todas formas.

matiasgordon commented 8 years ago

@Niko-EstudioBL podés modificar el modo de apertura a redirect y verificar si el checkout abre correctamente?

El código del botón sería:

<a href="<?php echo $preapproval['response']['init_point']; ?>" name="MP-Checkout" mp-mode="redirect">Subscribe</a>
<script type="text/javascript" src="https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js"></script>
Niko-EstudioBL commented 8 years ago

Ahora si! va encaminandose. Tire un var_dump sobre el preapproval.

array(2) { ["status"]=> int(201) ["response"]=> array(14) { ["id"]=> string(32) "66530ef6ab364697b917769d3cbaced3" ["payer_id"]=> int(207693291) ["payer_email"]=> string(17) "my_cu@my_site.com" ["back_url"]=> string(35) "http://mercadotest.com/response.php" ["collector_id"]=> int(132332337) ["application_id"]=> int(8261526831263686) ["status"]=> string(7) "pending" ["reason"]=> string(7) "XXXXXXX" ["external_reference"]=> string(5) "XXXXX" ["date_created"]=> string(29) "2016-03-04T06:40:17.418-04:00" ["last_modified"]=> string(29) "2016-03-04T06:40:17.418-04:00" ["init_point"]=> string(90) "https://www.mercadopago.com/mla/debits/new?preapproval_id=66530ef6ab364697b917769d3cbaced3" ["sandbox_init_point"]=> string(94) "https://sandbox.mercadopago.com/mla/debits/new?preapproval_id=66530ef6ab364697b917769d3cbaced3" ["auto_recurring"]=> array(4) { ["frequency"]=> int(1) ["frequency_type"]=> string(6) "months" ["transaction_amount"]=> float(153.98) ["currency_id"]=> string(3) "ARS" } } }

Si doy a subscribe, me redirecciona automaticamente a MercadPago para efectuar la transaccion. Se puede hacer desde el modal?

Cuales son los pasos a seguir para efectuar de manera correcta el debito automatico? Sandbox funciona correctamente en este caso?

Niko-EstudioBL commented 8 years ago

Ya testee todo en sandbox, pareceria ir correcto. Tanto pago, como notificacion en el back_url.

Faltaria nomas ver si es posible iniciar el pago desde el modal, sin necesitar redireccionar el pago a MP.

Y una vez asi hacer el proceso definitivo para pagos reales, chequeando que puedan suscribirse realmente, y ver que tal las notificaciones por cada pago acreditado, y con alguna posible cancelacion a la suscripcion. Me olvido de algo?

Niko-EstudioBL commented 8 years ago

Solucionado el tema del modal.

Quedaria nomas lo otro consultado, para acomodar bien mis ideas jaja

Verdaderamente muchas gracias por la atencion y la paciencia @matiasgordon!

matiasgordon commented 8 years ago

No te olvidas de nada :)

Iniciá el init_point con el mp-mode = modal, y debería funcionarte.

Saludos

Niko-EstudioBL commented 8 years ago

Buenas! Para no abrir un nuevo tema continuo este:

matiasgordon commented 8 years ago

Hola! Tenés dos opciones: Vía API o a través del sitio web.

Saludos

Niko-EstudioBL commented 8 years ago

Genial! Una consulta un tanto absurda quizas, utilizando la API, como identifico en MP al usuario ya suscripto que quiero darle de baja, pausar o modificar monto? Que parametro de referencia tomo y como? Nuevamente muchas gracias por la pronta respuesta.

matiasgordon commented 8 years ago

Deberías almacenar de tu lado el preapproval_id.

De ser necesario, podés buscar en https://api.mercadopago.com/preapproval/search por payer_email o external_reference (si creaste una referencia al crear la suscripción).

En la API vas a ver:

{
    "id": "1234",
    "payer_email": "my_customer@my_site.com",
    "external_reference": "OP-1234",
}

Saludos

Niko-EstudioBL commented 8 years ago

Claro, yo habia tomado nota de la referencia externa o del email como datos unicos, pero deje de lado el preapproval_id. Genial. De verdad fuiste de mucha ayuda, muchisimas gracias!

Niko-EstudioBL commented 8 years ago

Buen dia! Nuevamente vuelvo a molestar! Retome el tema de los pagos, las notificaciones IPN puntualmente.

Muchas gracias de antemano por la atencion, y mil disculpas si mis dudas son basicamente de ignorante jaja Saludos!

jesusvasquez0 commented 8 years ago

espero que este en linea para resolver dicho caso

Date: Fri, 1 Apr 2016 05:22:23 -0700 From: notifications@github.com To: sdk-php@noreply.github.com Subject: Re: [mercadopago/sdk-php] Ayuda pagos recurrentes! No puedo hacerlos funcionar. (#56)

Buen dia! Nuevamente vuelvo a molestar!

Retome el tema de los pagos, las notificaciones IPN puntualmente.

Me llegan a mi script de notificaciones el ID y el TOPIC del mensaje, en mi caso seria 'preapproval' o 'authorized_payment'. Siempre que existe la comunicacion es porque la accion fue realizada correctamente? Como detecto esto?

Como y a donde devuelvo el HTTP STATUS 200 (OK) ó 201 (CREATED)? En que caso notificar cada uno?

El access_token, lo genero una sola vez y lo archivo, o es conveniente generar uno por cada nueva accion?

Muchas gracias de antemano por la atencion, y mil disculpas si mis dudas son basicamente de ignorante jaja

Saludos!

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub

Niko-EstudioBL commented 8 years ago

Buen dia! Me encuentro en linea, efectivamente, espero usted tambien.

jesusvasquez0 commented 8 years ago

confirme si estas en linea

Date: Thu, 7 Apr 2016 04:12:05 -0700 From: notifications@github.com To: sdk-php@noreply.github.com CC: jesusestudia1@hotmail.com Subject: Re: [mercadopago/sdk-php] Ayuda pagos recurrentes! No puedo hacerlos funcionar. (#56)

Buen dia! Me encuentro en linea, efectivamente, espero usted tambien.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub

Niko-EstudioBL commented 8 years ago

Me encuentro. Lamentablemente nunca coincidimos.