Readymade Code


Click to view PHP Sample Code
// Set header to return JSON
header('Content-Type: application/json');

// Get USSD request parameters from GET
$sessionId     = $_GET['session_id']     ?? '';
$msisdn        = $_GET['session_msisdn'] ?? '';
$sessionMsg    = $_GET['session_msg']    ?? '';
$operation     = $_GET['session_operation'] ?? '';
$sessionFrom   = $_GET['session_from']   ?? '';
$sessionType   = $_GET['session_type']   ?? '';
$mno           = $_GET['session_mno']    ?? '';

// Default response
$response = [
    'session_operation' => 'continue',
    'session_type'      => 1, // Expecting user input
    'session_id'        => $sessionId,
    'session_msg'       => '',
];

// USSD Menu Logic
if ($operation === 'begin') {
    $response['session_msg'] = "Welcome to MyService\n1. Buy Airtime\n2. Buy Data";
} elseif ($operation === 'continue') {
    switch (trim($sessionMsg)) {
        case '1':
            $response['session_msg'] = "Enter airtime amount:";
            break;
        case '2':
            $response['session_msg'] = "Enter data amount:";
            break;
        default:
            $response['session_msg'] = "Invalid option. Try again\n1. Buy Airtime\n2. Buy Data";
            break;
    }
} else {
    $response['session_operation'] = 'end';
    $response['session_type'] = 4;
    $response['session_msg'] = "Thank you for using MyService.";
}

// Output JSON response
echo json_encode($response);