Files
unifiedpayment/app/Http/Controllers/MpambaTnmCallbacksController.php
2025-11-26 21:45:45 +00:00

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"]);
}
}
}