Update: 2026-05-07 03:35:03
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user