56 lines
1.7 KiB
PHP
56 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
class MpambaTnmCallbacksController extends Controller
|
|
{
|
|
public function index(){
|
|
/*
|
|
Developer: David Kumwenda
|
|
Contact: 0881161942 or 0996139030
|
|
App: Mpamba 4 MSE
|
|
Date: 30 August 2025
|
|
Duration: 1 day dev work
|
|
*/
|
|
|
|
|
|
// Read raw POST data
|
|
#$rawData = file_get_contents("php://input");
|
|
|
|
// Decode JSON
|
|
#$data = json_decode($rawData, true);
|
|
|
|
// Basic logging (optional, useful for debugging)
|
|
#file_put_contents("logs/callback_log_" . date('Ymd') . '.txt', date("Y-m-d H:i:s") . " - " . $rawData . PHP_EOL, FILE_APPEND);
|
|
|
|
$filename = "callback_log_" . date("Y-m-d") . ".txt";
|
|
$logdata = date("Y-m-d H:i:s") . " - " . json_encode($request->all());
|
|
Storage::disk('callbacks')->append($filename, $logdata);
|
|
|
|
|
|
if (isset($request->receipt_number, $request->result_code, $request->transaction_id)) {
|
|
|
|
$receiptNumber = $request["receipt_number"];
|
|
$resultCode = $request["result_code"];
|
|
$resultDescription = $request->["result_description"] ?? "";
|
|
$resultTime = $request->["result_time"] ?? date("Y-m-d H:i:s");
|
|
$transactionId = $request->["transaction_id"];
|
|
$success = $request->["success"] ?? false;
|
|
|
|
|
|
// Respond with 200 OK to acknowledge receipt
|
|
http_response_code(200);
|
|
echo json_encode(["status" => "callback received"]);
|
|
|
|
}
|
|
else {
|
|
// Missing required fields
|
|
http_response_code(400);
|
|
echo json_encode(["error" => "Invalid callback payload"]);
|
|
}
|
|
|
|
}
|
|
}
|