De l'aide sur USSD APi qui devrait normallement envoie le donnee a la BD
Dear all,
Je suis entrain de chercher la solution comme mon code USSD peut envoyer le donner introduit via le telephone a la base de donnee voila mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| <?php
$data = file_get_contents("php://input");
$line = "\n-------------------------------------------------------------\n";
file_put_contents("logs/ussdgw.txt", $data."\n", FILE_APPEND);
$dataDecoded = json_decode($data);
$uri = array_reverse(explode("/", $_SERVER["REQUEST_URI"]));
$usid = $uri[1];
$action = $uri[0];
$defaultmenu = array(
"shouldClose" => false,
"ussdMenu" => "Welcome to USSD demo!: \n 1.Register \n 2.Login \n 3.Next Step \n 4.Exit",
"responseExitCode" => 200,
"responseMessage" => ""
);
switch($action)
{
case 'response':
switch($dataDecoded->text)
{
case 1:
$ussdMenu = "Your Leave due date it will be on the ";
break;
case 2:
$ussdMenu = "Your Overtime due date it will be on the ";
break;
case 3:
$ussdMenu = "Your Medical Aid Date will be sent via SMS";
break;
}
$response = array(
"shouldClose" => true,
"ussdMenu" => $ussdMenu,
"responseExitCode" => 200,
"responseMessage" => ""
);
$r_encoded = json_encode($response);
echo $r_encoded;
break;
case 'status':
$sessions = file_get_contents("logs/sessions.txt");
$sessionsActive = explode("\n", $sessions);
if(in_array($usid, $sessionsActive))
$sessionActive = true;
else
$sessionActive = false;
$end = array(
"sessionActive" => $sessionActive,
"responseExitCode" => 200,
"responseMessage" => ""
);
$endEncoded = json_encode($end);
echo $endEncoded;
break;
case 'start':
echo json_encode($defaultmenu);
file_put_contents("logs/sessions.txt", $usid."\n", FILE_APPEND);
break;
case 'end':
$sessions = file_get_contents("logs/sessions.txt");
$sessionsActive = explode("\n", $sessions);
unset($sessionActive[$usid]);
$sessionsModified = implode("\n", $sessionActive);
file_put_contents("logs/sessions.txt", $sessionsModified);
$end = array(
"responseExitCode" => 200,
"responseMessage" => "Connection ended"
);
$endEncoded = json_encode($end);
echo $endEncoded;
break;
}
?> |
et j'aimerais qu'elle soit a peut pres comme celui la
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| <?php
header('Content-type: text/plain');
include "func/functions.php";
$applicationName = $_GET['application'];
$uri = "http://ussd1.infobip.com:8080/appcore/access/rest/v2/application/$applicationName/session/start";
$host = "ussd1.infobip.com:8080";
/* local db configuration */
$dsn = 'mysql:dbname=iteammob_database;host=localhost;'; //database name
$user = 'iteammob_mzo'; // your mysql user
$password = 'mzokhona23'; // your mysql password
// Create a PDO instance that will allow you to access your database
try {
$dbh = new PDO($dsn, $user, $password);
}
catch(PDOException $e) {
//var_dump($e);
echo("PDO error occurred");
}
catch(Exception $e) {
//var_dump($e);
echo("Error occurred");
}
$phone = $_GET['phoneNumber'];
$session_id = $_GET['sessionId'];
$service_code = $_GET['*120*21662*119672#'];
$ussd_string= $_GET['text'];
//set default level to zero
$level = 0;
$ussd_string_exploded = explode ("*",$ussd_string);
// Get menu level from ussd_string reply
$level = count($ussd_string_exploded);
if($level == 1 or $level == 0){
display_menu(); // show the home/first menu
}
if ($level > 1)
{
if ($ussd_string_exploded[0] == "1")
{
// If user selected 1 send them to the registration menu
register($ussd_string_exploded,$phone, $dbh);
}
else if ($ussd_string_exploded[0] == "2"){
//If user selected 2, send them to the about menu
about($ussd_string_exploded);
}
}
function ussd_proceed($ussd_text){
echo "CON $ussd_text";
}
function ussd_stop($ussd_text){
echo "END $ussd_text";
}
//This is the home menu function
function display_menu()
{
$ussd_text = "\n 1.Register \n 2.Login ";
ussd_proceed($ussd_text);
}
// Function that hanldles About menu
function about($ussd_text)
{
$ussd_text = "This is a sample registration application";
ussd_stop($ussd_text);
}
// Function that handles Registration menu
function register($details,$phone, $dbh){
if(count($details) == 2)
{
$ussd_text = "Please enter your Full Name, Phone Number and your Employee Number, each separated by commas:";
ussd_proceed($ussd_text); // ask user to enter registration details
}
if(count($details)== 3)
{
$ussd_text = "\n 1.Leave Due \n 2.Overtime Due \n 3.Next Medical \n 4.Exit";
if (empty($details[1])){
$ussd_text = "Sorry we do not accept blank values";
ussd_proceed($ussd_text);
} else {
$input = explode(",",$details[1]);//store input values in an array
$full_name = $input[0];//store full name
$number = $input[1];//store number
$phone_number =$phone;//store phone number
// build sql statement
$sth = $dbh->prepare("INSERT INTO ussd (full_name, number, phone) VALUES('$full_name','$number','$phone_number')");
//execute insert query
$sth->execute();
if($sth->errorCode() == 0) {
$ussd_text = $full_name." your registration was successful. Your employee number is ".$number." and phone number is ".$phone_number;
ussd_proceed($ussd_text);
} else {
$errors = $sth->errorInfo();
}
}
}
}
# close the pdo connection
$dbh = null;
?> |
Merci pour votre aide