Update: 2026-05-07 03:35:03

This commit is contained in:
Hamza-Ayed
2026-05-07 03:35:04 +03:00
parent a5623d5b84
commit 209f721cd6
2 changed files with 57 additions and 7 deletions

View File

@@ -17,7 +17,7 @@ use App\Core\Validator;
$data = Security::sanitize(input());
// Simple Auth for the Bot
$botToken = env('BOT_WEBHOOK_TOKEN', 'musadaq-bot-secret-123');
$botToken = env('BOT_WEBHOOK_TOKEN');
$providedToken = $_SERVER['HTTP_X_BOT_TOKEN'] ?? $data['token'] ?? '';
if ($providedToken !== $botToken) {
@@ -37,8 +37,26 @@ $bankReference = trim($data['bank_reference'] ?? '');
$amount = (float)($data['amount'] ?? 0);
$senderName = $data['sender_name'] ?? 'غير معروف';
// Robust Parsing Fallback (for Orange Money / CliQ Jordan)
if (empty($bankReference) || $amount <= 0) {
json_error('بيانات التحويل غير مكتملة.', 422);
// Try to extract amount: بمبلغ 15 دينار
if (preg_match('/بمبلغ\s+([\d\.]+)\s+دينار/', $rawMessage, $matches)) {
$amount = (float)$matches[1];
}
// Try to extract reference: بالرقم المرجعي JIBA...
if (preg_match('/بالرقم المرجعي\s+([A-Z0-9a-z]+)/', $rawMessage, $matches)) {
$bankReference = $matches[1];
}
// Try to extract sender: من FERAS...
if (preg_match('/من\s+([^من]+)\s+من مزود/', $rawMessage, $matches)) {
$senderName = trim($matches[1]);
}
}
if (empty($bankReference) || $amount <= 0) {
json_error('فشل استخراج بيانات التحويل من الرسالة.', 422);
}
$db = Database::getInstance();