Ejemplo n.º 1
0
$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']));
            }
Ejemplo n.º 2
0
<?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'];
        }
    }