Handling M-Pesa Callbacks In Laravel: A Step-by-Step Guide
Replace existing callbacks with a more robust stkCallback function, handling errors and updating payment status accordingly.
Option 1: replace existing callbacks
public function stkCallback()
{
try {
$data = file_get_contents('php://input');
// Append data to the file instead of overwriting
Storage::disk('local')->append('stk.json', $data);
$response = json_decode($data, true);
if (isset($response['Body']['stkCallback'])) {
$callback = $response['Body']['stkCallback'];
$CheckoutRequestID = $callback['CheckoutRequestID'];
$ResultCode = $callback['ResultCode'];
$ResultDesc = $callback['ResultDesc'];...