HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //proc/self/cwd/emu-integration/index.php
<?php

/***
 * Purpose: This api is for EMU user registration and for starting test.
 *
 * @author Rohit Kashyap
 * @since 04/05/2020 >> dd/mm/yyyy
 * @version 0.2
 * @copyright Copyright (C) 2020 Graposs Edutech Ltd. All rights reserved.
 * @license Graposs Edutech Ltd.
 */
// header('Content-Type: application/json');
include_once('../wp-config.php');
include_once('generateChecksum.php');

/**
 * WPDB global variable and including tables
 */
global $wpdb;
$PSY_TEST_GEN_TEST_TAKEN = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN;
$PSY_USERS_DETAILS = $wpdb->prefix . PSY_USERS_DETAILS;
$PSY_SUBSCRIPTION = $wpdb->prefix . PSY_SUBSCRIPTION;
$PSY_API_REQUEST_DATA = $wpdb->prefix . PSY_API_REQUEST_DATA;

/***root link */
$root_link = 'http://3.7.22.134';

/***
 * requesting params from emu
 */


$emu_name = $_REQUEST['name'];
$emu_class = $_REQUEST['class'];
$emu_email = $_REQUEST['email'];
$emu_mobile = $_REQUEST['mobile'];
$emu_dob = date('Y-m-d', strtotime($_REQUEST['dob']));
$emu_gender = $_REQUEST['gender'];
$exam_type = $_REQUEST['exam_type'];
$emu_unique_user_id = $_REQUEST['emu_unique_user_id'];
$emu_payment_ref_id = $_REQUEST['emu_payment_ref_id'];
$checksum = $_REQUEST['checksum'];
$selfanly_exam_id = $_REQUEST['exam_id'];
$curDate = date('Y-m-d H:i:s');


/***required feild status */
if ($emu_name == '' || $emu_class == '' || $emu_email == '' || $emu_mobile == '' || $emu_dob == '' || $emu_gender == '' || $exam_type == '' || $emu_unique_user_id == '' || $checksum == '' || $selfanly_exam_id == '' || $emu_payment_ref_id == '') {
    $paramStatus = 2; // 2 for integration closed
} else {
    $paramStatus = 1;
}

/***form action if start test */
if ($exam_type == 'P') {
    $action = '/emu-personality-test/';
} else if ($exam_type == 'A') {
    $action = '/emu-aptitude-test/';
}


/***
 * verify check sum value is equal to function value
 */
$key = '3dotSevendot22dot!EFour';
$genratingCheckSum = $emu_unique_user_id . $key;
$newcheckSum = adler32($genratingCheckSum);


if ($newcheckSum == $checksum) {

    /***
     * condition for all parameters required
     */
    if ($paramStatus == 1) {


        /***validate params */
        if (!filter_var($emu_email, FILTER_VALIDATE_EMAIL)) {
            $status = 0;
            $response = $emu_email . ' is not a valid email address';
        } else if (!is_numeric($emu_mobile) || strlen($emu_mobile) != 10) {
            $status = 0;
            $response = $emu_mobile . ' is not a valid mobile number';
        } else {
            /***
             * insert data in api table on request of every api call
             */
            // $insertAPiData = "INSERT into $PSY_API_REQUEST_DATA set name='$emu_name', email='$emu_email', mobile='$emu_mobile', class='$emu_class', dob='$emu_dob', gender='$emu_gender', exam_type='$exam_type', emu_unique_user_id='$emu_unique_user_id', emu_payment_ref_id='$emu_payment_ref_id', exam_id='$selfanly_exam_id', created_on='$curDate'";
            // if ($wpdb->query($insertAPiData)) {
            //     $apiTableID = $wpdb->insert_id;
            // }

            /***
             * exam type
             */
            if ($exam_type == 'P') {
                $testType = 'EMU-PER';
            } else if ($exam_type == 'A') {
                $testType = 'EMU-APT';
            }

            /***
             * condition if user already registered
             */
            if (username_exists($emu_email)) {

                /*** get user id by user login */
                $user = get_user_by('login', $emu_email);
                $user_id = $user->ID;

                //auto login
                // wp_clear_auth_cookie();
                // wp_set_current_user($user_id);
                // wp_set_auth_cookie($user_id);

                $findSubs = $wpdb->get_var("SELECT subs_id from $PSY_API_REQUEST_DATA where emu_payment_ref_id='$emu_payment_ref_id' and subs_id!=''");

                /***condiotion if user already taken test of this exam id */
                $checktest = $wpdb->get_row("SELECT test_taken_id,reference_id,status FROM $PSY_TEST_GEN_TEST_TAKEN where exam_category_id='$selfanly_exam_id' and user_id='$user_id' and reference_id='$findSubs' order by test_taken_id desc");

                /***
                 * if test not taken or taken
                 */
                if ($checktest->test_taken_id == '' || $checktest->test_taken_id == 0) {

                    $checkSubscription = $wpdb->get_row("SELECT subscription_id from $PSY_SUBSCRIPTION where user_id='$user_id' and exam_id='$selfanly_exam_id' and test_type='$testType' and subscription_id='$findSubs' order by subscription_id DESC");

                    if ($checkSubscription->subscription_id != '' || $checkSubscription->subscription_id != 0) {
                        $subs_id = $checkSubscription->subscription_id;
                        $status = 1;
                        $response = 'Welcome you have not taken your test, So Start Test';
                    } else {
                        //$insertSubscription = "INSERT into $PSY_SUBSCRIPTION set user_id='$user_id', plan_id='8', exam_id='$selfanly_exam_id', test_type='$testType', purchase_date='$curDate', status='1', active_status='1', active_date='$curDate', online_txn_table_id='0', source='EMU', source_id='0'";

                        /***
                         * update api table with subscription id
                         */
                        // if ($wpdb->query($insertSubscription)) {
                        //     $subs_id = $wpdb->insert_id;

                        //     $updateApiData = $wpdb->query("UPDATE $PSY_API_REQUEST_DATA set subs_id='$subs_id' where id='$apiTableID'");

                        //     /***after response */
                        //     $status = 1;
                        //     $response = 'Welcome! Start Test';
                        // }
                    }

                    //$array = array("status" => 1, "message" => "Start Test");

                } else {

                    if ($checktest->status == 'N') {
                        /***after response */
                        $status = 1;
                        $response = 'Welcome Back! Resume Test';
                        $subs_id = $checktest->reference_id;
                    } else if ($checktest->status == 'Y') {
                        /***after response */
                        $status = 0;
                        $response = 'You have already test taken';
                    }
                    //$array = array("status" => 0, "message" => "Already test taken");
                }
            } else {

                // $password = str_shuffle(bin2hex(openssl_random_pseudo_bytes(4)));
                // $user_id = wp_create_user($emu_email, $password, $emu_email);

                // $creds = array();
                // $creds['user_login'] = $emu_email;
                // $creds['user_password'] = $password;
                // $creds['remember'] = true;

                // $user = wp_signon($creds, false);
                // wp_set_current_user($user->ID);

                if ($user_id) {

                    // $inserTDetails = $wpdb->query("INSERT into $PSY_USERS_DETAILS set user_id='$user_id', first_name='$emu_name', mobile_number='$emu_mobile', email_address='$emu_email', gender_id='$emu_gender', date_of_birth='$emu_dob', current_education_level='$emu_class', source='EMU', source_id='1'");

                    // $insertSubscription = "INSERT into $PSY_SUBSCRIPTION set user_id='$user_id', plan_id='8', exam_id='$selfanly_exam_id', test_type='$testType', purchase_date='$curDate', status='1', active_status='1', active_date='$curDate', online_txn_table_id='0', source='EMU', source_id='0'";

                    /***
                     * update api table with subscription id
                     */
                    // if ($wpdb->query($insertSubscription)) {

                    //     $subs_id = $wpdb->insert_id;

                    //     $updateApiData = $wpdb->query("UPDATE $PSY_API_REQUEST_DATA set subs_id='$subs_id' where id='$apiTableID'");

                    //     //$array = array("status" => 1, "message" => "Start Test", "gepl_user_id" => $user_id);
                    //     /***after response */
                    //     $status = 1;
                    //     $response = 'Registered successfully, Start Test';
                    // } else {
                    //     //$array = array("status" => 0, "message" => "Error occured");
                    //     /***after response */
                    //     $status = 0;
                    //     $response = 'Error occured, while creating test';
                    // }
                } else {
                    //$array = array("status" => 0, "message" => "User not registered");
                    /***after response */
                    $status = 0;
                    $response = 'User not registered, due to some errors';
                }
            }
            //echo json_encode($array);
        }
    } else if($paramStatus == 2) {
        $status = 0;
        $response = 'Registration Closed';
    } else {
        //$array = array("status" => 0, "message" => "Error,all parameters required");
        /***after response */
        $status = 0;
        $response = 'Error,all parameters required';
        //echo json_encode($array);
    }
} else {
    //$array = array("status" => 0, "message" => "Error,checksum not verified");
    /***after response */
    $status = 0;
    $response = 'Error,checksum not verified';
    //echo json_encode($array);
}
?>
<link rel="stylesheet" href="/wp-content/themes/psychometrics/bootstrap/css/bootstrap.min.css">
<?php
/***Using of HTML for status condition */
if ($status == 1) {
?>
    <div class="container" style="margin-top: 250px">
        <div class="row d-flex justify-content-center">
            <div class="col-md-3">

            </div>
            <div class="col-md-6">
                <div class="alert alert-success" role="alert">
                    <?php echo $response; ?>
                </div>
            </div>
            <div class="col-md-3">

            </div>
        </div>
        <div class="row d-flex justify-content-center">
            <div class="col-md-3">

            </div>
            <div class="col-md-6">
                <form action="<?php echo $root_link . $action ?>" method="POST">
                    <input type="hidden" name="sID" value="<?php echo $subs_id ?>">
                    <input type="hidden" name="class_id" value="<?php echo $emu_class ?>">
                    <button type="submit" class="btn btn-primary">Start Test</button>
                </form>
            </div>
            <div class="col-md-3">

            </div>
        </div>
    </div>
<?php
} else {
?>
    <div class="container" style="margin-top: 250px">
        <div class="row d-flex justify-content-center">
            <div class="col-md-3">

            </div>
            <div class="col-md-6">
                <div class="alert alert-danger" role="alert">
                    <?php echo $response; ?>
                </div>

            </div>
            <div class="col-md-3">

            </div>

        </div>
    </div>
<?php
}
?>