returnStatus('error', 'Authentication Failed'); exit; } } else { MM_DiagnosticLog::log(MM_DiagnosticLog::$MM_ERROR, "System does not support sha256 hmac... proceeding to process schedules without auth"); } $eventId = $request['reference_id']; $eventType = $wpdb->get_var("SELECT event_type from " . MM_TABLE_SCHEDULED_EVENTS . " where id='{$eventId}'"); switch ($eventType) { case MM_ScheduledEvent::$PAYMENT_SERVICE_EVENT: $paymentEvent = new MM_ScheduledPaymentEvent($eventId); $billingStatus = $request['status']; $paymentEvent->setBillingStatus($billingStatus); if ($paymentEvent->getStatus() == MM_ScheduledEvent::$EVENT_PROCESSED) { returnStatus("ok", "Event {$eventId} already processed"); } $paymentService = MM_PaymentServiceFactory::getPaymentServiceById($paymentEvent->getPaymentServiceId()); if (is_null($paymentService)) { returnStatus("error", "Improper event configuration: Payment service with id {$paymentService->getPaymentServiceId()} not found"); } $response = $paymentService->processScheduledPaymentEvent($paymentEvent); if (MM_PaymentServiceResponse::isError($response) || MM_PaymentServiceResponse::isFailed($response)) { returnStatus("error", $response->message); } returnStatus("ok", ""); break; default: //TODO: logging returnStatus('error', 'Invalid Event Type'); break; }