Skip to content

Instantly share code, notes, and snippets.

@daverockz
Created December 4, 2016 23:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daverockz/7443bf26e41c7898b86dea1d6ebea3a3 to your computer and use it in GitHub Desktop.
Save daverockz/7443bf26e41c7898b86dea1d6ebea3a3 to your computer and use it in GitHub Desktop.
sample php ussd app
<?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