include '../includes/config.php'; $payload = json_decode(file_get_contents('php://input'), true); // LOG EVERYTHING $stmt = $conn->prepare("INSERT INTO payment_webhooks_log (provider, payload) VALUES ('paychangu', ?)"); $stmt->bind_param("s", json_encode($payload)); $stmt->execute(); $stmt->close(); if ($payload['status'] !== 'success') { http_response_code(200); exit; } $tx_ref = $payload['data']['tx_ref']; // SALE-123 $sale_id = (int)str_replace('SALE-', '', $tx_ref); // Mark payment as PAID $conn->prepare(" UPDATE payments SET status='paid', provider='paychangu', provider_ref=? WHERE sale_id=? ")->execute([$payload['data']['transaction_id'], $sale_id]); // Mark sale completed $conn->prepare(" UPDATE sales_transactions SET status='completed' WHERE id=? ")->execute([$sale_id]); // 🔥 Queue EIS submission $conn->prepare(" INSERT INTO eis_queue (sale_id, status) VALUES (?, 'pending') ")->execute([$sale_id]); http_response_code(200);