algmaal/laravel-fawaterak
最新稳定版本:v1.0.3
Composer 安装命令:
composer require algmaal/laravel-fawaterak
包简介
Laravel package for Fawaterak payment gateway integration
README 文档
README
حزمة Laravel للتكامل مع بوابة الدفع Fawaterak. تدعم جميع طرق الدفع المتاحة في Fawaterak مع إدارة شاملة للمعاملات والـ webhooks.
المميزات
- ✅ دعم Laravel 10+ و 11+ و 12+
- ✅ تكامل كامل مع Fawaterak API
- ✅ دعم جميع طرق الدفع (Visa/Mastercard، Fawry، Meeza، Aman، Basta)
- ✅ معالجة Webhooks التلقائية
- ✅ إدارة البيئات المتعددة (Staging/Production)
- ✅ Cache للبيانات المتكررة
- ✅ Logging شامل للعمليات
- ✅ Validation للبيانات
- ✅ معالجة الأخطاء المتقدمة
- ✅ اختبارات شاملة
- ✅ Facade سهل الاستخدام
التثبيت
composer require algmaal/laravel-fawaterak
نشر ملف التكوين:
php artisan vendor:publish --provider="Algmaal\LaravelFawaterak\FawaterakServiceProvider" --tag="fawaterak-config"
التكوين
أضف المتغيرات التالية إلى ملف .env:
# البيئة الافتراضية (staging أو production) FAWATERAK_ENVIRONMENT=staging # إعدادات بيئة التطوير FAWATERAK_STAGING_API_KEY=your_staging_api_key FAWATERAK_STAGING_BASE_URL=https://staging.fawaterk.com FAWATERAK_STAGING_WEBHOOK_SECRET=your_staging_webhook_secret # إعدادات بيئة الإنتاج FAWATERAK_PRODUCTION_API_KEY=your_production_api_key FAWATERAK_PRODUCTION_BASE_URL=https://app.fawaterak.com FAWATERAK_PRODUCTION_WEBHOOK_SECRET=your_production_webhook_secret # العملة الافتراضية FAWATERAK_DEFAULT_CURRENCY=EGP # إعدادات إضافية FAWATERAK_CACHE_ENABLED=true FAWATERAK_LOGGING_ENABLED=true
الاستخدام الأساسي
الحصول على طرق الدفع المتاحة
use Algmaal\LaravelFawaterak\Facades\Fawaterak; // الحصول على طرق الدفع $paymentMethods = app(\Algmaal\LaravelFawaterak\Contracts\FawaterakServiceInterface::class) ->getPaymentMethods(); foreach ($paymentMethods['data'] as $method) { echo $method['name_ar'] . ' - ' . $method['name_en']; }
إنشاء دفعة جديدة
use Algmaal\LaravelFawaterak\Facades\Fawaterak; // بيانات العميل $customerData = [ 'first_name' => 'محمد', 'last_name' => 'أحمد', 'email' => 'mohamed@example.com', 'phone' => '01234567890', 'address' => 'القاهرة، مصر' ]; // عناصر السلة $cartItems = [ [ 'name' => 'منتج تجريبي 1', 'price' => '100', 'quantity' => '1' ], [ 'name' => 'منتج تجريبي 2', 'price' => '50', 'quantity' => '2' ] ]; // إنشاء الدفعة $payment = Fawaterak::createPayment( $customerData, $cartItems, 200.0, // المجموع 2, // معرف طريقة الدفع (Visa/Mastercard) [ 'currency' => 'EGP', 'invoice_number' => 'INV-001', 'redirection_urls' => [ 'successUrl' => 'https://yoursite.com/payment/success', 'failUrl' => 'https://yoursite.com/payment/failed', 'pendingUrl' => 'https://yoursite.com/payment/pending' ] ] ); // إعادة توجيه العميل لصفحة الدفع if (isset($payment['data']['payment_data']['redirectTo'])) { return redirect($payment['data']['payment_data']['redirectTo']); }
التحقق من حالة الدفعة
use Algmaal\LaravelFawaterak\Facades\Fawaterak; $invoiceKey = 'hyU2vcy3USvT5Tg'; // التحقق من نجاح الدفعة if (Fawaterak::isPaymentSuccessful($invoiceKey)) { echo 'تم الدفع بنجاح!'; } else { echo 'الدفعة لم تكتمل بعد'; } // الحصول على حالة الدفعة $status = Fawaterak::getPaymentStatus($invoiceKey); echo "حالة الدفعة: {$status}"; // الحصول على تفاصيل الدفعة كاملة $paymentDetails = Fawaterak::getPayment($invoiceKey);
معالجة Webhooks
الحزمة تتعامل تلقائياً مع webhooks من Fawaterak. يمكنك الاستماع للأحداث:
// في EventServiceProvider use Illuminate\Support\Facades\Event; Event::listen('fawaterak.webhook.received', function ($data) { // معالجة عامة لجميع الـ webhooks Log::info('Webhook received', $data); }); Event::listen('fawaterak.payment.paid', function ($data) { // معالجة الدفعات المكتملة $invoiceKey = $data['invoice_key']; // تحديث قاعدة البيانات، إرسال إيميل، إلخ }); Event::listen('fawaterak.payment.failed', function ($data) { // معالجة الدفعات الفاشلة }); Event::listen('fawaterak.payment.pending', function ($data) { // معالجة الدفعات المعلقة });
طرق الدفع المختلفة
Visa/Mastercard
$payment = Fawaterak::createPayment($customer, $items, $total, 2); // سيتم إعادة توجيه العميل لصفحة الدفع
Fawry
$payment = Fawaterak::createPayment($customer, $items, $total, 3); // سيحصل العميل على كود Fawry للدفع $fawryCode = $payment['data']['payment_data']['fawryCode'];
Meeza (Mobile Wallet)
$payment = Fawaterak::createPayment($customer, $items, $total, 4, [ 'mobile_wallet_number' => '01234567890' ]); // سيحصل العميل على QR Code للدفع $qrCode = $payment['data']['payment_data']['meezaQrCode'];
الخيارات المتقدمة
تخصيص URLs إعادة التوجيه
$options = [ 'redirection_urls' => [ 'successUrl' => 'https://yoursite.com/payment/success', 'failUrl' => 'https://yoursite.com/payment/failed', 'pendingUrl' => 'https://yoursite.com/payment/pending' ] ];
إضافة خصم
$options = [ 'discount_data' => [ 'type' => 'pcg', // أو 'literal' 'value' => 10 // 10% أو 10 جنيه ] ];
إضافة ضريبة
$options = [ 'tax_data' => [ 'title' => 'ضريبة القيمة المضافة', 'value' => 14 // 14% ] ];
الاختبار
تشغيل الاختبارات:
composer test
تشغيل الاختبارات مع تقرير التغطية:
composer test-coverage
المساهمة
نرحب بالمساهمات! يرجى قراءة دليل المساهمة للمزيد من التفاصيل.
الأمان
إذا اكتشفت مشكلة أمنية، يرجى إرسال إيميل إلى mohamedalgamal@gmail.com بدلاً من استخدام issue tracker.
الترخيص
هذه الحزمة مرخصة تحت رخصة MIT.
الدعم
حالة النشر
- ✅ GitHub: متاح ومحدث
- ✅ Packagist: منشور ومتاح
- ✅ Laravel 12: مدعوم ومختبر
- ✅ Auto-Updates: مفعل عبر GitHub Webhooks
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-30