Created
December 4, 2016 23:26
-
-
Save daverockz/7443bf26e41c7898b86dea1d6ebea3a3 to your computer and use it in GitHub Desktop.
sample php ussd app
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$ussdRequest = json_decode(@file_get_contents('php://input')); | |
$ussdResponse = new stdclass; | |
if ($ussdRequest != NULL) | |
switch ($ussdRequest->Type) { | |
case 'Initiation': | |
$ussdResponse->Message = | |
"Welcome to Transbit\n \n" . | |
"1. Pay Bills\n2. Enter Merchant Number\n3. List of Merchants"; | |
$ussdResponse->Type = 'Response'; | |
break; | |
case 'Response': | |
switch ($ussdRequest->Sequence) { | |
case 2: | |
$items = array('1' => 'Fixtures', '2' => 'Bet'); | |
if ($ussdRequest->Message == 1) { | |
$ussdResponse->Message = | |
"Pay your Bills\n \n" . | |
"1. DSTV\n2. GO TV\n3. ECG"; | |
$ussdResponse->Type = 'Response'; | |
} | |
else if ($ussdRequest->Message == 2) { | |
$ussdResponse->Message = | |
"Pay a Merchant\n \n" . | |
"Enter Merchant Number:"; | |
$ussdResponse->Type = 'Response'; | |
} | |
else if ($ussdRequest->Message == 3) { | |
$ussdResponse->Message = | |
"Select a Merchant\n \n" . | |
"1. Shoprite\n2. Palace shopping mall \n3. Silverbird"; | |
$ussdResponse->Type = 'Response'; | |
} | |
break; | |
case 3: | |
$ussdResponse->Message = "Enter Amount (GHc) "; | |
$ussdResponse->Type = 'Response'; | |
break; | |
case 4: | |
$ussdResponse->Message = 'Thank you for using Transbit.'; | |
$ussdResponse->Type = 'Release'; | |
break; | |
// Unexpected request. If the code here should ever | |
// execute, it means the request is probably forged. | |
default: | |
$ussdResponse->Message = 'Unexpected request.'; | |
$ussdResponse->Type = 'Release'; | |
break; | |
} | |
break; | |
// Session cleanup. | |
// Not much to do here. | |
default: | |
$ussdResponse->Message = 'Duh.'; | |
$ussdResponse->Type = 'Release'; | |
break; | |
} | |
// An error has occured. | |
// Probably the request JSON could not be parsed. | |
else { | |
$ussdResponse->Message = 'Invalid USSD request.'; | |
$ussdResponse->Type = 'Release'; | |
} | |
// Let's set the HTTP content-type of our response, encode our | |
// USSD response object into JSON, and flush the output. | |
header('Content-type: application/json; charset=utf-8'); | |
echo json_encode($ussdResponse); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment