@extends('user.layouts.app') @section('css') @endsection @php // Define JSON data as PHP variables/arrays for Fast API $headersJson = json_encode( [ 'apiToken' => Auth::user()->api_token ?? 'Your_API_Token_Here', 'Accept' => 'application/json', ], JSON_PRETTY_PRINT, ); // Products API Response - Success $productsJson = json_encode( [ 'error' => false, 'message' => 'Products fetched successfully', 'data' => [ 'products' => [ [ 'id' => 1, 'isActive' => 1, 'created_at' => '2025-07-13T19:35:51.000000Z', 'price' => '1.9074', 'note' => '111', 'name' => 'gdfgd', 'image' => 'http://127.0.0.1:8000/images/product_images/1752410151.png', 'game_id' => 9, 'minCount' => 150, 'maxCount' => 250000, 'currency' => 'ل.س', 'gameName' => 'nnnnn', 'zerocount' => 2, 'daynamicFields' => [ [ 'id' => 14, 'name' => 'number', 'type' => 'number', 'label' => 'number', 'placeholder' => 'number', 'help_text' => 'number', 'required' => true, 'options' => [], 'default_value' => null, ], ], ], [ 'id' => 2, 'isActive' => 0, 'created_at' => '2025-07-14T18:07:23.000000Z', 'price' => '1', 'note' => '1', 'name' => 'يبيقف', 'image' => 'http://127.0.0.1:8000/images/product_images/1752491243.png', 'game_id' => 9, 'minCount' => 1, 'maxCount' => 1, 'currency' => 'ل.س', 'gameName' => 'nnnnn', 'zerocount' => 2, 'daynamicFields' => [ [ 'id' => 14, 'name' => 'number', 'type' => 'number', 'label' => 'number', 'placeholder' => 'number', 'help_text' => 'number', 'required' => true, 'options' => [], 'default_value' => null, ], ], ], ], ], ], JSON_PRETTY_PRINT, ); // Request Order API Response (Success) $requestOrderSuccessJson = json_encode( [ 'error' => false, 'message' => 'تم معالجة الطلب بنجاح', 'data' => [ 'order_number' => 'ORD-ABC123-1642512345', 'amount' => 40.8608, 'status' => 'pending', 'notes' => null, 'created_at' => now()->toDateTimeString(), ], ], JSON_PRETTY_PRINT, ); // Request Order API Response (Error) $requestOrderErrorJson = json_encode( [ 'error' => true, 'message' => 'الكمية يجب أن تكون بين 1 و 100', ], JSON_PRETTY_PRINT, ); // Request Order API Response (Duplicate Order) $requestOrderDuplicateJson = json_encode( [ 'error' => true, 'message' => 'هذا الطلب موجود بالفعل', 'data' => [ 'order_number' => 'ORD-ABC123-1642512345', 'amount' => 40.8608, 'status' => 'pending', 'notes' => null, 'created_at' => now()->toDateTimeString(), ], ], JSON_PRETTY_PRINT, ); // Single Order Check Response $singleOrderJson = json_encode( [ 'error' => false, 'message' => 'Order fetched successfully', 'data' => [ 'order' => [ 'id' => 'ORD-ABC123-1642512345', 'order_number' => 'ORD-ABC123-1642512345', 'product_name' => '60uc||Pubg(ID)', 'game_name' => 'Pubg(ID)', 'price' => 40.8608199, 'currency' => 'USD', 'status' => 'completed', 'note' => 'تم تنفيذ الطلب بنجاح', 'created_at' => '2024-12-09 21:56:33', 'updated_at' => '2024-12-09 21:58:15', ], ], ], JSON_PRETTY_PRINT, ); // Multiple Orders Check Response $checkOrdersJson = json_encode( [ 'error' => false, 'message' => 'Orders fetched successfully', 'data' => [ 'orders' => [ [ 'order_number' => 'ORD-7n1Onuv-1753032957', 'price' => '288.02000', 'status' => 'processing', 'gamer_data' => [ 'number' => '12', ], 'created_at' => '2025-07-20 20:35:57', ], ], ], ], JSON_PRETTY_PRINT, ); // Balance API Response $balanceJson = json_encode( [ 'error' => false, 'message' => 'Balance fetched successfully', 'data' => [ 'name' => Auth::user()->name, 'balance' => Auth::user()->balance, ], ], JSON_PRETTY_PRINT, ); // Error Response Examples $unauthorizedJson = json_encode( [ 'error' => true, 'message' => 'API token is required', ], JSON_PRETTY_PRINT, ); $validationErrorJson = json_encode( [ 'error' => true, 'message' => 'Validation failed', 'errors' => [ 'product_id' => ['معرف المنتج مطلوب'], 'qty' => ['الكمية مطلوبة'], ], ], JSON_PRETTY_PRINT, ); $notFoundJson = json_encode( [ 'error' => true, 'message' => 'المورد المطلوب غير موجود', ], JSON_PRETTY_PRINT, ); $serverErrorJson = json_encode( [ 'error' => true, 'message' => 'خطأ في الخادم', ], JSON_PRETTY_PRINT, ); $baseUrl = config('app.url', 'https://balance.sw-games.net'); // Helper function to generate skeleton HTML based on JSON content function generateSkeleton($json) { $lines = count(explode("\n", $json)); $lineCount = max(5, min($lines, 15)); // Min 5, max 15 lines $skeletonHtml = '
'; for ($i = 0; $i < $lineCount; $i++) { $skeletonHtml .= '
'; } $skeletonHtml .= '
'; return $skeletonHtml; } @endphp @section('content')
@svg('lucide-key-round', ['width' => '18', 'height' => '18'])

API Token

يجب إرسال هذا التوكن في كل طلب API في الـ Headers

@svg('lucide-clipboard', ['class' => 'input-prefix', 'width' => '16', 'height' => '16'])
@svg('lucide-credit-card', ['width' => '18', 'height' => '18'])

Headers

الـ Headers المطلوبة في كل API request

Required Headers {!! generateSkeleton($headersJson) !!}
{{ $headersJson }}
@svg('lucide-package', ['width' => '18', 'height' => '18'])

Products API

جلب قائمة بجميع المنتجات المتاحة

@svg('lucide-clipboard', ['class' => 'input-prefix', 'width' => '16', 'height' => '16'])
Success Response (200) {!! generateSkeleton($productsJson) !!}
{{ $productsJson }}
@svg('lucide-shopping-cart', ['width' => '18', 'height' => '18'])

Request Order API

إنشاء طلب جديد

@svg('lucide-clipboard', ['class' => 'input-prefix', 'width' => '16', 'height' => '16'])
@svg('lucide-info', ['width' => '18', 'height' => '18'])
Parameters
  • product_id: معرف المنتج (من Products API)
  • qty: الكمية المطلوبة
  • dynamic_fields: بيانات اللاعب المطلوبة (تختلف حسب نوع اللعبة)
  • uuid: معرف فريد للطلب (اختياري لتجنب التكرار)
أمثلة على البيانات المطلوبة:
  • PUBG: Player_ID=123456789
  • Free Fire: Player_ID=123456789
Success Response (201) {!! generateSkeleton($requestOrderSuccessJson) !!}
{{ $requestOrderSuccessJson }}
Error Response (400) {!! generateSkeleton($requestOrderErrorJson) !!}
{{ $requestOrderErrorJson }}
Duplicate Order Response (201) {!! generateSkeleton($requestOrderDuplicateJson) !!}
{{ $requestOrderDuplicateJson }}
@svg('lucide-search', ['width' => '18', 'height' => '18'])

Check Orders API

فحص حالة طلبات متعددة

@svg('lucide-clipboard', ['class' => 'input-prefix', 'width' => '16', 'height' => '16'])
@svg('lucide-settings', ['width' => '18', 'height' => '18'])
Parameters
  • order_ids: قائمة بمعرفات الطلبات مفصولة بفاصلة (حد أقصى 100 طلب)
Success Response (200) {!! generateSkeleton($checkOrdersJson) !!}
{{ $checkOrdersJson }}
@svg('lucide-wallet', ['width' => '18', 'height' => '18'])

Balance API

جلب رصيد المستخدم الحالي

@svg('lucide-clipboard', ['class' => 'input-prefix', 'width' => '16', 'height' => '16'])
Success Response (200) {!! generateSkeleton($balanceJson) !!}
{{ $balanceJson }}
@svg('lucide-triangle-alert', ['width' => '18', 'height' => '18'])

Common Error Responses

الأخطاء الشائعة التي قد تواجهك

Unauthorized Error (401) {!! generateSkeleton($unauthorizedJson) !!}
{{ $unauthorizedJson }}
Validation Error (422) {!! generateSkeleton($validationErrorJson) !!}
{{ $validationErrorJson }}
Not Found Error (404) {!! generateSkeleton($notFoundJson) !!}
{{ $notFoundJson }}
Server Error (500) {!! generateSkeleton($serverErrorJson) !!}
{{ $serverErrorJson }}
@svg('lucide-info', ['width' => '18', 'height' => '18'])

Status Codes

أكواد الحالة المستخدمة في API

Code Status Description
200 Success طلب ناجح
201 Created تم إنشاء طلب جديد
400 Bad Request خطأ في البيانات المرسلة
401 Unauthorized غير مصرح بالوصول
404 Not Found المورد غير موجود
422 Validation Error خطأ في التحقق من البيانات
500 Server Error خطأ في الخادم
@svg('lucide-alert-circle', ['width' => '18', 'height' => '18'])

Important Notes

ملاحظات مهمة عند استخدام API

@svg('lucide-lightbulb', ['width' => '18', 'height' => '18'])
ملاحظات مهمة
  • API Token: يجب إرسال التوكن في الـ headers مع كل طلب
  • Rate Limiting: يوجد حد أقصى للطلبات في الدقيقة الواحدة
  • UUID: استخدم معرف فريد لتجنب تكرار الطلبات
  • Dynamic Fields: كل لعبة لها متطلبات مختلفة للبيانات
  • Order Status: تحقق من حالة الطلب باستخدام Check Orders API
  • Error Handling: تأكد من معالجة جميع أنواع الأخطاء
@endsection @section('js') @endsection