Simplify APNs payload for iOS visible notifications and fetch latest token

This commit is contained in:
Hamza-Ayed
2026-06-30 22:13:45 +03:00
parent 772f8b647d
commit 1b5d6eae44
2 changed files with 22 additions and 5 deletions

View File

@@ -133,7 +133,7 @@ try {
$spamCount = intval($stmtSpam->fetchColumn()); $spamCount = intval($stmtSpam->fetchColumn());
// Check if passenger has active FCM token // Check if passenger has active FCM token
$sqlToken = "SELECT token FROM tokens WHERE passengerID = :pid LIMIT 1"; $sqlToken = "SELECT token FROM tokens WHERE passengerID = :pid ORDER BY id DESC LIMIT 1";
$stmtToken = $con->prepare($sqlToken); $stmtToken = $con->prepare($sqlToken);
$stmtToken->execute([':pid' => $passengerId]); $stmtToken->execute([':pid' => $passengerId]);
$fcmToken = $stmtToken->fetchColumn(); $fcmToken = $stmtToken->fetchColumn();

View File

@@ -59,10 +59,6 @@ class FcmService
'token' => $token, 'token' => $token,
'data' => $processedData, 'data' => $processedData,
'android' => ['priority' => 'HIGH'], 'android' => ['priority' => 'HIGH'],
'apns' => [
'headers' => ['apns-priority' => '10', 'apns-push-type' => 'background'],
'payload' => ['aps' => ['content-available' => 1]],
],
], ],
]; ];
@@ -71,6 +67,25 @@ class FcmService
'title' => $title, 'title' => $title,
'body' => $body, 'body' => $body,
]; ];
$payload['message']['apns'] = [
'payload' => [
'aps' => [
'sound' => $tone === 'ding' ? 'default' : $tone
]
]
];
} else {
$payload['message']['apns'] = [
'headers' => [
'apns-priority' => '5',
'apns-push-type' => 'background'
],
'payload' => [
'aps' => [
'content-available' => 1
]
]
];
} }
$ch = curl_init($fcmUrl); $ch = curl_init($fcmUrl);
@@ -94,6 +109,8 @@ class FcmService
$curlErr = curl_errno($ch); $curlErr = curl_errno($ch);
curl_close($ch); curl_close($ch);
error_log("[FCM_DEBUG] Token: " . substr($token, 0, 10) . "... Payload: " . json_encode($payload, JSON_UNESCAPED_UNICODE) . " | Result: $httpCode - $result");
if ($curlErr) { if ($curlErr) {
return ['status' => 'error', 'message' => 'CURL error']; return ['status' => 'error', 'message' => 'CURL error'];
} }