use Fototea\Models\PuntoPagos; use Fototea\Models\OrderProduct; use Fototea\Util\UrlHelper; $file = 'pagoexito.txt'; $content = "-----------------------------------------------------------------------------------------"; $content .= "\nGET\n"; $content .= json_encode($_GET); $content .= "\n\nPOST\n"; $content .= json_encode($_POST); $content .= "\n\n"; //file_put_contents($file, $content, FILE_APPEND); $token = $app->getRequest()->get('token'); $paymentMethod = new PaymentManager($app, PuntoPagos::PAYMENT_METHOD_TYPE); $paymentMethod->loadByGatewayId($token); if ($paymentMethod->getStatus() === Payment::PAYMENT_STATUS_APPROVED) { $products = OrderProduct::getProductsByOrderId($paymentMethod->getOrderId()); if (empty($products)) { //TODO correo aqui //TODO log $processResult = 99; } foreach ($products as $product) { //Aplicar cambios segun cada producto if ($product->id == Product::PRODUCT_ADJUDICAR_ID) { $productData = json_decode($product->data); $msg = 'El proyecto ha sido adjudicado de forma exitosa. <a href="' . UrlHelper::getProjectUrl($productData->project_id) . '">Ir al proyecto</a>'; } } } ?>
} else { //TODO falta validar la firma.... $paymentMethod = new PaymentManager($app, PuntoPagos::PAYMENT_METHOD_TYPE); $paymentMethod->loadByGatewayId($token); $paymentMethod->updateStatus(); $orderId = $paymentMethod->getOrderId(); $order = Order::getOrder($orderId); if ($paymentMethod->getStatus() == Payment::PAYMENT_STATUS_APPROVED) { $order->set('status', Order::ORDER_STATUS_COMPLETED); } else { $order->set('status', Order::ORDER_STATUS_FAILED); } $order->save(); if ($paymentMethod->getStatus() == Payment::PAYMENT_STATUS_APPROVED) { //Sacar order products $products = OrderProduct::getProductsByOrderId($order->id); if (empty($products)) { //TODO correo aqui //TODO log $processResult = 99; } foreach ($products as $product) { //Aplicar cambios segun cada producto if ($product->id == Product::PRODUCT_ADJUDICAR_ID) { //TODO validar offer id y project id $result = AdjudicationManager::adjudicateProject($data->project_id, $data->offer_id); if (!$result) { //Falló adjudicacion //TODO notificar a paulo } }