$notify = $db->ls("SELECT * FROM api_services\n WHERE activo = 1\n AND proximo_corte < DATE_ADD(NOW(),INTERVAL 7 DAY)\n AND last_remember < DATE_SUB(NOW(),INTERVAL 2 DAY)\n LIMIT 30\n ", array(), false); if ($notify) { foreach ($notify as $n) { sendNotify($n); } } $notify = $db->ls("SELECT * FROM api_services\n WHERE activo = 1\n AND proximo_corte < DATE_ADD(NOW(),INTERVAL 2 DAY)\n AND last_remember < DATE_SUB(NOW(),INTERVAL 2 DAY)\n LIMIT 30\n ", array(), false); if ($notify) { foreach ($notify as $n) { sendNotify($n); } } $mp_pending = $db->ls("SELECT * FROM api_invoices\n WHERE\n payment_status = 'pending'\n AND\n payment_name = 'mercadopago-ve'\n LIMIT 30\n ", array(), false); if ($mp_pending) { foreach ($mp_pending as $invoice) { $result = validateMercadoPago($invoice['payment_reference']); if (isset($result['order_id']) && isset($result['status']) && $result['status'] != 'Pending') { $custom = preg_split('/-/', $result['order_id']); $id_plan = (int) $custom[0]; $id_service = (int) $invoice['id_service']; $service = $db->ls("SELECT * FROM api_services WHERE id_service = %d", array($id_service), true); $user = User::getUserByID($service['id_usuario']); $plan_db = $user ? $db->ls("SELECT planes.*, precios.* FROM api_planes planes INNER JOIN api_precio_planes precios ON planes.id_plan = precios.id_plan WHERE precios.currency = '%s' AND precios.id_plan = '%d'" . ($user->rol == 1 ? '' : ' AND planes.activo = 1'), array(secInjection($result['currency']), (int) $id_plan), true) : false; if ($result['status'] == 'Completed') { email($user->mail, 'Pago Aceptado', 'Su pago fue aceptado y ya fue creado su APP para poder disfrutar de nuestro servicios, ingrese a "Registro / Login" en http://cedula.com.ve/ para mayor información.'); $db->qs("UPDATE api_services SET activo = 1, proximo_corte = '%s' WHERE id_service = %d", array($id_plan, date('Y-m-d H:i:s', strtotime('+' . $plan_db['periocidad'] . ' month', strtotime($service['proximo_corte']))), $id_service)); $db->qs("UPDATE api_invoices SET payment_status = 'completed', log_payment = '%s' WHERE id_invoice = %d", array(secInjection($result['message']), $invoice['id_invoice'])); } else { email($user->mail, 'Error en el Pago', 'Su pago fue rechazado por Mercadopago, ingrese a "Registro / Login" en http://cedula.com.ve/ y vuelva a realizar su pedido para reintentar la compra.'); $db->qs("UPDATE api_invoices SET payment_status = 'rejected', log_payment = '%s' WHERE id_invoice = %d", array(secInjection($result['message']), $invoice['id_invoice'])); }
<?php /** * Api de Consultas de Cedulas Venezolanas - IPN MercadoPago * * @author Kijam Lopez <*****@*****.**> * @copyright 2015 Desarrollos Cuado C.A. * @license GPLv3 */ include_once "./lib/classDBAndUser.php"; include_once "./lib/mercadopagove.php"; $mp_op_id = $_REQUEST['id']; if ($mp_op_id) { $result = validateMercadoPago($mp_op_id); if (!$result || !isset($result['order_id'])) { exit; } email(ADMIN_EMAIL, 'IPN Mercadopago', print_r($_POST, true) . print_r($result, true)); $custom = preg_split('/-/', $result['order_id']); $id_usuario = (int) $custom[1]; $id_plan = (int) $custom[0]; $id_service = isset($custom[2]) ? (int) $custom[2] : false; $invoice = false; $service = false; $ref_id = $mp_op_id; if (strlen($ref_id) > 0) { $invoice = $db->ls("SELECT * FROM api_invoices WHERE payment_name = 'mercadopago-ve' AND payment_reference = '%s'", array(secInjection($ref_id)), true); if ($invoice) { $id_service = (int) $invoice['id_service']; } }