承接 algmaal/laravel-fawaterak 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

algmaal/laravel-fawaterak

最新稳定版本:v1.0.3

Composer 安装命令:

composer require algmaal/laravel-fawaterak

包简介

Laravel package for Fawaterak payment gateway integration

README 文档

README

Latest Version on Packagist Total Downloads GitHub Tests Action Status

حزمة 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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-30