[ 'name' => '1-Year Foundation Programme', 'regular' => 60000, 'offer' => 35000, 'label' => '₹35,000 / year offer' ], 'monthly' => [ 'name' => 'Monthly Live Batch', 'regular' => 5000, 'offer' => 3500, 'label' => '₹3,500 / month offer' ], 'crash' => [ 'name' => '3-Month Crash Course', 'regular' => 15000, 'offer' => 10500, 'label' => '₹10,500 / 3 months offer' ] ]; /* -------------------- HELPERS -------------------- */ function e(string $v): string { return htmlspecialchars($v, ENT_QUOTES, 'UTF-8'); } function jsonResponse(array $data, int $status = 200): never { http_response_code($status); header('Content-Type: application/json; charset=utf-8'); echo json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); exit; } function cleanPhone(string $phone): string { return preg_replace('/\D+/', '', $phone) ?? ''; } function cashfreeRequest( string $method, string $url, string $clientId, string $clientSecret, string $apiVersion, ?array $payload = null ): array { $ch = curl_init($url); $headers = [ 'Content-Type: application/json', 'Accept: application/json', 'x-client-id: ' . $clientId, 'x-client-secret: ' . $clientSecret, 'x-api-version: ' . $apiVersion, 'x-request-id: ' . bin2hex(random_bytes(12)) ]; curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => strtoupper($method), CURLOPT_HTTPHEADER => $headers, CURLOPT_TIMEOUT => 30, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_FOLLOWLOCATION => false ]); if ($payload !== null) { curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload)); } $body = curl_exec($ch); $error = curl_error($ch); $status = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($body === false || $error) { return [ 'ok' => false, 'status' => 0, 'data' => ['message' => $error ?: 'Unable to contact Cashfree.'] ]; } $data = json_decode($body, true); if (!is_array($data)) { $data = ['raw' => $body]; } return [ 'ok' => $status >= 200 && $status < 300, 'status' => $status, 'data' => $data ]; } /* Optional DB capture. If your config.php exposes $pdo as PDO, enquiries/payments are stored. Otherwise the website still works and payment is handled by Cashfree. */ function db(): ?PDO { global $pdo; return (isset($pdo) && $pdo instanceof PDO) ? $pdo : null; } function ensureDbTables(PDO $pdo): void { $pdo->exec(" CREATE TABLE IF NOT EXISTS sainik_enquiries ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, student_name VARCHAR(150) NOT NULL, parent_name VARCHAR(150) NULL, email VARCHAR(190) NULL, mobile VARCHAR(20) NOT NULL, class_target VARCHAR(20) NULL, course_key VARCHAR(50) NULL, course_name VARCHAR(190) NULL, amount DECIMAL(10,2) NULL, source VARCHAR(80) DEFAULT 'website', status VARCHAR(40) DEFAULT 'enquiry', cashfree_order_id VARCHAR(100) NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_mobile (mobile), INDEX idx_order (cashfree_order_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 "); } function saveEnquiry(array $data): ?int { $pdo = db(); if (!$pdo) return null; try { ensureDbTables($pdo); $stmt = $pdo->prepare(" INSERT INTO sainik_enquiries (student_name,parent_name,email,mobile,class_target,course_key,course_name,amount,source,status,cashfree_order_id) VALUES (:student_name,:parent_name,:email,:mobile,:class_target,:course_key,:course_name,:amount,'website',:status,:cashfree_order_id) "); $stmt->execute([ ':student_name' => $data['student_name'] ?? '', ':parent_name' => $data['parent_name'] ?? null, ':email' => $data['email'] ?? null, ':mobile' => $data['mobile'] ?? '', ':class_target' => $data['class_target'] ?? null, ':course_key' => $data['course_key'] ?? null, ':course_name' => $data['course_name'] ?? null, ':amount' => $data['amount'] ?? null, ':status' => $data['status'] ?? 'enquiry', ':cashfree_order_id' => $data['cashfree_order_id'] ?? null ]); return (int)$pdo->lastInsertId(); } catch (Throwable $t) { return null; } } function updatePayment(int $id, string $status, ?string $orderId = null): void { $pdo = db(); if (!$pdo || $id <= 0) return; try { ensureDbTables($pdo); $stmt = $pdo->prepare(" UPDATE sainik_enquiries SET status = :status, cashfree_order_id = COALESCE(:order_id, cashfree_order_id) WHERE id = :id "); $stmt->execute([ ':status' => $status, ':order_id' => $orderId, ':id' => $id ]); } catch (Throwable $t) {} } /* -------------------- CASHFREE ACTIONS -------------------- */ $action = $_GET['action'] ?? $_POST['action'] ?? ''; if ($action === 'create_order') { if ($_SERVER['REQUEST_METHOD'] !== 'POST') { jsonResponse(['ok' => false, 'message' => 'Invalid request.'], 405); } if ($CF_CLIENT_ID === '' || $CF_CLIENT_SECRET === '') { jsonResponse([ 'ok' => false, 'message' => 'Cashfree credentials are not configured on the server.' ], 500); } $student = trim((string)($_POST['student_name'] ?? '')); $parent = trim((string)($_POST['parent_name'] ?? '')); $email = trim((string)($_POST['email'] ?? '')); $mobile = cleanPhone((string)($_POST['mobile'] ?? '')); $classTarget = trim((string)($_POST['class_target'] ?? '')); $courseKey = trim((string)($_POST['course_key'] ?? 'monthly')); if ($student === '' || strlen($mobile) < 10) { jsonResponse(['ok' => false, 'message' => 'Please enter a valid student name and 10-digit mobile number.'], 422); } if ($email !== '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) { jsonResponse(['ok' => false, 'message' => 'Please enter a valid email address.'], 422); } if (!isset($courses[$courseKey])) { jsonResponse(['ok' => false, 'message' => 'Invalid course selected.'], 422); } $course = $courses[$courseKey]; $amount = (float)$course['offer']; $orderId = 'GSAISSEE' . date('ymdHis') . strtoupper(bin2hex(random_bytes(3))); $siteUrl = rtrim( (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https://' : 'http://') . ($_SERVER['HTTP_HOST'] ?? 'sainikschoolpreparation.gyanskills.com'), '/' ); $returnUrl = $siteUrl . '/?payment=return&order_id=' . rawurlencode($orderId); $notifyUrl = $siteUrl . '/?action=webhook'; $payload = [ 'order_id' => $orderId, 'order_amount' => $amount, 'order_currency' => 'INR', 'customer_details' => [ 'customer_id' => 'student_' . substr(hash('sha256', $mobile), 0, 18), 'customer_name' => $student, 'customer_email' => $email !== '' ? $email : 'admissions@gyanskills.com', 'customer_phone' => substr($mobile, -10) ], 'order_meta' => [ 'return_url' => $returnUrl, 'notify_url' => $notifyUrl ], 'order_note' => $course['name'] . ' - Gyan Skills Academy', 'order_tags' => [ 'course' => $courseKey, 'class' => $classTarget ?: 'not-selected', 'source' => 'sainikschoolpreparation.gyanskills.com' ] ]; $savedId = saveEnquiry([ 'student_name' => $student, 'parent_name' => $parent, 'email' => $email, 'mobile' => substr($mobile, -10), 'class_target' => $classTarget, 'course_key' => $courseKey, 'course_name' => $course['name'], 'amount' => $amount, 'status' => 'order_created', 'cashfree_order_id' => $orderId ]); $_SESSION['last_order_id'] = $orderId; $_SESSION['last_enquiry_id'] = $savedId; $result = cashfreeRequest( 'POST', $CF_BASE . '/orders', $CF_CLIENT_ID, $CF_CLIENT_SECRET, $CF_API_VERSION, $payload ); if (!$result['ok'] || empty($result['data']['payment_session_id'])) { if ($savedId) updatePayment($savedId, 'order_failed', $orderId); $message = $result['data']['message'] ?? 'Cashfree order creation failed.'; if (!empty($result['data']['type'])) { $message .= ' (' . $result['data']['type'] . ')'; } jsonResponse([ 'ok' => false, 'message' => $message, 'cashfree_status' => $result['status'] ], 502); } jsonResponse([ 'ok' => true, 'order_id' => $orderId, 'payment_session_id' => $result['data']['payment_session_id'], 'amount' => $amount, 'enquiry_id' => $savedId, 'environment' => $CF_ENV ]); } if ($action === 'check_order') { if ($CF_CLIENT_ID === '' || $CF_CLIENT_SECRET === '') { jsonResponse(['ok' => false, 'message' => 'Cashfree credentials are not configured.'], 500); } $orderId = trim((string)($_GET['order_id'] ?? '')); if ($orderId === '') { jsonResponse(['ok' => false, 'message' => 'Order ID missing.'], 422); } $result = cashfreeRequest( 'GET', $CF_BASE . '/orders/' . rawurlencode($orderId), $CF_CLIENT_ID, $CF_CLIENT_SECRET, $CF_API_VERSION ); if (!$result['ok']) { jsonResponse([ 'ok' => false, 'message' => $result['data']['message'] ?? 'Unable to verify order.', 'cashfree_status' => $result['status'] ], 502); } $status = strtoupper((string)($result['data']['order_status'] ?? 'PENDING')); $enquiryId = (int)($_SESSION['last_enquiry_id'] ?? 0); if ($enquiryId) { updatePayment($enquiryId, strtolower($status), $orderId); } jsonResponse([ 'ok' => true, 'order_id' => $orderId, 'order_status' => $status, 'data' => $result['data'] ]); } if ($action === 'webhook') { /* Cashfree webhook verification: HMAC-SHA256 over timestamp + raw request body, base64 encoded. */ $rawBody = file_get_contents('php://input') ?: ''; $signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? ''; $timestamp = $_SERVER['HTTP_X_WEBHOOK_TIMESTAMP'] ?? ''; if ($CF_CLIENT_SECRET === '' || $rawBody === '' || $signature === '' || $timestamp === '') { http_response_code(400); exit('invalid webhook'); } $expected = base64_encode(hash_hmac('sha256', $timestamp . $rawBody, $CF_CLIENT_SECRET, true)); if (!hash_equals($expected, $signature)) { http_response_code(401); exit('invalid signature'); } $event = json_decode($rawBody, true); $orderId = $event['data']['order']['order_id'] ?? null; $paymentStatus = strtoupper((string)($event['data']['payment']['payment_status'] ?? '')); $statusMap = [ 'SUCCESS' => 'paid', 'FAILED' => 'failed', 'USER_DROPPED' => 'user_dropped', 'PENDING' => 'pending' ]; if ($orderId) { $pdo = db(); if ($pdo) { try { ensureDbTables($pdo); $stmt = $pdo->prepare(" UPDATE sainik_enquiries SET status = :status WHERE cashfree_order_id = :order_id "); $stmt->execute([ ':status' => $statusMap[$paymentStatus] ?? strtolower($paymentStatus ?: 'webhook_received'), ':order_id' => $orderId ]); } catch (Throwable $t) {} } } http_response_code(200); exit('OK'); } /* -------------------- PAGE DATA -------------------- */ $paymentReturn = isset($_GET['payment'], $_GET['order_id']) && $_GET['payment'] === 'return'; $orderIdForStatus = trim((string)($_GET['order_id'] ?? '')); ?> Sainik School Coaching 2026 | AISSEE Class 6 & 9 Preparation | Gyan Skills Academy
🎯 Gyan Skills Academy • Independent AISSEE Preparation Initiative
🎯 SAINIK SCHOOL PREPARATION • CLASS 6 & CLASS 9

Prepare Smart.
Build Discipline.
Aim for Sainik School.

A structured preparation system built around live teaching, recorded revision, chapter-wise practice, mock tests, OMR strategy, doubt support and parent guidance. Choose a long-term foundation plan, monthly live batch or focused crash course.

🎥 Live Classes 📚 Recorded Revision 📝 PDFs + Practice 🎯 Mock Tests 🧾 OMR Practice
20Live Classes / Month
60Classes in 3-Month Crash
3Flexible Preparation Plans
24×7WhatsApp Support
Admissions Open

Choose your preparation timeline.

Start early for stronger concept building, join monthly for continuous preparation, or use the crash plan for focused revision.

🌱

1-Year Foundation

Long-term preparation for students who want time for concepts, practice, revision and testing.

₹60,000/year₹35,000current offer
  • 20 live classes every month
  • Recorded lecture access
  • Chapter-wise PDFs & practice
  • Sectional + full mock tests
  • OMR practice & exam strategy
  • Parent progress guidance

3-Month Crash

A fast-paced plan for concentrated syllabus coverage, practice, mock tests and last-mile revision.

₹15,000₹10,5003-month offer
  • 60 live classes
  • Rapid syllabus coverage
  • High-frequency practice
  • Full-length mock tests
  • OMR speed & accuracy drills
  • Last-mile revision strategy
What Students Get

A preparation system — not just video lectures.

Every component is designed to make preparation measurable, repeatable and easier for students and parents to follow.

🎥

Live Classes

Structured teaching sessions with practice and revision built into the monthly plan.

▶️

Recorded Lectures

Useful for revision, missed sessions and repeated practice before tests.

📄

PDF Study Material

Chapter-focused notes, practice material and revision resources.

🧠

Mock Tests

Regular testing to improve accuracy, speed, question selection and exam temperament.

📝

OMR Practice

Answer-marking drills so students become comfortable with the response format.

💬

Doubt Support

Students can raise questions and receive guidance during the preparation journey.

📈

Progress Focus

Use practice and test performance to identify topics that need more attention.

👨‍👩‍👧

Parent Guidance

Simple support for study routines, consistency, revision and preparation discipline.

The Environment

See the discipline we are preparing for.

Visual references are from publicly available Sainik School/cadet sources. Gyan Skills Academy is an independent coaching initiative and is not an official Sainik Schools Society or NTA website.

Sainik School cadets parade

Parade & Discipline

Focus, coordination and consistency are habits that students can build every day.

Sainik School cadets with officer

Confidence & Bearing

Preparation also means building communication confidence, responsibility and a disciplined routine.

How Preparation Works

Build the routine before you chase the result.

Understand → Practise → Test → Revise. Repeat the cycle consistently instead of relying on last-minute preparation.

01

Understand

Learn concepts and identify the type of questions students need to handle.

02

Practise

Use chapter-wise questions and regular exercises to turn understanding into accuracy.

03

Test

Take sectional and full-length mocks and review errors instead of checking only marks.

04

Revise

Revisit weak chapters, formulas, vocabulary, reasoning patterns and time-management habits.

Academic Focus

Core preparation areas.

Exact examination rules, eligibility, dates and official admission instructions can change by session. Students should always verify the latest official AISSEE bulletin.

📐 Mathematics

Concepts, calculations, problem-solving, speed and accuracy through graded practice.

🔬 General Science

School-level concepts, application-oriented questions and regular revision.

🧠 Intelligence / Reasoning

Logical thinking, classification, series and timed practice where applicable.

📖 Language

Reading, vocabulary, grammar and comprehension-oriented practice as relevant to the applicable class.

📝 Mock & OMR

Timed tests, question selection, OMR marking discipline and post-test error analysis.

🏃 Confidence & Routine

Study discipline, communication confidence, basic wellness awareness and parent-supported routines.

Important: Gyan Skills Academy is an independent coaching provider. It does not conduct AISSEE, issue government admission letters or guarantee admission. For official rules and current AISSEE information, use the National Testing Agency and Sainik Schools Society portals.
FAQs

Questions parents usually ask.

Clear answers about the coaching programme, classes, study material, testing and enrolment.

Is Gyan Skills Academy an official Sainik School or NTA coaching centre?

No. It is an independent coaching initiative. Official AISSEE information should always be checked on the NTA and Sainik Schools Society portals.

Which classes does the programme cover?

The preparation programme is designed for students targeting AISSEE admission at Class VI and Class IX.

How many live classes are included every month?

The monthly plan includes 20 live classes every month.

What is the current monthly offer?

The displayed regular monthly fee is ₹5,000 and the current offer is ₹3,500 per month, subject to the active batch offer.

What is included in the 1-year foundation plan?

20 classes every month, recorded lectures, PDFs, practice, mock tests, OMR practice and parent guidance.

Do you provide a 3-month crash course?

Yes. The displayed offer is ₹10,500 for three months, subject to the current batch offer.

Are recorded lectures provided?

Yes. Recorded revision access is included in the course structure.

Do students get PDF study material?

Yes. Chapter-wise PDFs and practice resources are included in the programme.

Do you conduct mock tests?

Yes. Mock and practice tests are part of the preparation structure.

Is OMR practice included?

Yes. OMR marking practice is included to help students become comfortable with the response format.

Do you provide doubt support?

Yes. Doubt support is part of the programme.

Do you provide interview preparation?

Guidance can be provided for communication, confidence and interaction readiness where relevant. Students should follow the official admission procedure for the applicable session.

Do you provide medical guidance?

General wellness and process-oriented guidance may be provided. Medical fitness can only be determined by authorised medical authorities.

Is admission or selection guaranteed?

No. Coaching cannot guarantee selection or admission. Official eligibility, performance, merit, vacancies, counselling and other applicable requirements determine admission.

How can I contact Gyan Skills?

Call 8840458141 or use the WhatsApp buttons on this page.

Where should students verify official AISSEE information?

Use the official NTA AISSEE portal and Sainik Schools Society sources for current notices, bulletins, dates and admission instructions.

Admissions Open

Ready to start the preparation journey?

Fill in the student and parent details. Our team can contact you about the batch, current offer and course structure. If you choose online payment, the secure Cashfree checkout opens after the order is created on the server.

20 live classes every month
Recorded revision + PDF practice
Mock tests + OMR drills
Parent guidance + doubt support
📞 Call 8840458141 💬 WhatsApp

Start Enrolment

Your details are used for admission enquiry and payment processing.
💬 WhatsApp