PHPackages                             abather/sms4jawaly - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. abather/sms4jawaly

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

abather/sms4jawaly
==================

SMS4Jawaly SDK for Laravel applications

1.0(8mo ago)049MITPHPPHP &gt;=7.2

Since Oct 26Pushed 8mo agoCompare

[ Source](https://github.com/Abather/sms4jawaly)[ Packagist](https://packagist.org/packages/abather/sms4jawaly)[ RSS](/packages/abather-sms4jawaly/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

4Jawaly Laravel SDK
===================

[](#4jawaly-laravel-sdk)

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![Total Downloads](https://camo.githubusercontent.com/7a794b336d0d08325595ec55997287a9e354d4a2ba1bb330b58a2b79af1f6c41/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616261746865722f736d73346a6177616c792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/abather/sms4jawaly)

A comprehensive Laravel SDK for the [4Jawaly](https://www.4jawaly.com/) SMS gateway service. This package provides an elegant and simple API for sending SMS messages, checking account balance, retrieving sender names, and seamless integration with Laravel's Notification system.

مكتبة شاملة لإطار العمل Laravel للتكامل مع خدمة بوابة الرسائل القصيرة [فورجوالي](https://www.4jawaly.com/). توفر هذه الحزمة واجهة برمجية بسيطة وأنيقة لإرسال الرسائل النصية القصيرة، والاطلاع على رصيد الحساب، واستعراض أسماء المرسلين، مع دعم كامل لنظام الإشعارات في Laravel.

Table of Contents | جدول المحتويات
----------------------------------

[](#table-of-contents--جدول-المحتويات)

- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
    - [Sending SMS](#sending-sms)
    - [Getting Account Balance](#getting-account-balance)
    - [Getting Sender Names](#getting-sender-names)
    - [Using Laravel Notifications](#using-laravel-notifications)
- [API Reference](#api-reference)
- [Error Handling](#error-handling)
- [Contributing](#contributing)
- [License](#license)

Features | المميزات
-------------------

[](#features--المميزات)

- ✅ Send SMS messages to single or multiple recipients | إرسال الرسائل القصيرة لمستلم واحد أو متعددين
- ✅ Check account balance and active packages | الاطلاع على رصيد الحساب والباقات النشطة
- ✅ Retrieve available sender names | استعراض أسماء المرسلين المتاحة
- ✅ Full Laravel Notification Channel support | دعم كامل لقنوات الإشعارات في Laravel
- ✅ On-demand notifications without user model | إرسال الإشعارات الفورية دون نموذج مستخدم
- ✅ Automatic service provider registration | تسجيل تلقائي لمزود الخدمة
- ✅ Simple Facade for easy access | واجهة Facade بسيطة للوصول السريع
- ✅ Comprehensive error handling | معالجة شاملة للأخطاء

Requirements | المتطلبات
------------------------

[](#requirements--المتطلبات)

- PHP &gt;= 7.2
- Laravel Framework (any version)
- Guzzle HTTP Client ^7.0

Installation | التثبيت
----------------------

[](#installation--التثبيت)

Install the package via Composer:

قم بتثبيت الحزمة باستخدام Composer:

```
composer require abather/sms4jawaly
```

The service provider will be automatically registered thanks to Laravel's package auto-discovery.

سيتم تسجيل مزود الخدمة تلقائياً بفضل خاصية الاكتشاف التلقائي في Laravel.

Configuration | الإعداد
-----------------------

[](#configuration--الإعداد)

### 1. Publish Configuration | نشر ملف الإعدادات

[](#1-publish-configuration--نشر-ملف-الإعدادات)

Publish the package configuration file to your application:

انشر ملف إعدادات الحزمة إلى تطبيقك:

```
php artisan vendor:publish --provider="Sms4jawaly\Laravel\Sms4jawalyServiceProvider"
```

This will create a `config/sms-4-jawaly.php` file in your application.

سيؤدي هذا إلى إنشاء ملف `config/sms-4-jawaly.php` في تطبيقك.

### 2. Environment Variables | متغيرات البيئة

[](#2-environment-variables--متغيرات-البيئة)

Add your 4Jawaly API credentials to your `.env` file:

أضف بيانات الاعتماد الخاصة بـ 4Jawaly في ملف `.env`:

```
SMS4JAWALY_API_KEY=your_api_key_here
SMS4JAWALY_API_SECRET=your_api_secret_here
SMS4JAWALY_DEFAULT_SENDER=4jawaly
SMS4JAWALY_RECEIVER_ATTRIBUTE=phone
```

### 3. Configuration File | ملف الإعدادات

[](#3-configuration-file--ملف-الإعدادات)

The published configuration file `config/sms-4-jawaly.php` contains:

يحتوي ملف الإعدادات المنشور `config/sms-4-jawaly.php` على:

```
return [
    'api_key'            => env('SMS4JAWALY_API_KEY'),
    'api_secret'         => env('SMS4JAWALY_API_SECRET'),
    'default_sender'     => env('SMS4JAWALY_DEFAULT_SENDER', '4jawaly'),
    'receiver_attribute' => env('SMS4JAWALY_RECEIVER_ATTRIBUTE', 'phone'),
];
```

> **Note:** If you're using configuration caching (`php artisan config:cache`), remember to clear and recache after making changes.
>
> **ملاحظة:** إذا كنت تستخدم التخزين المؤقت للإعدادات (`php artisan config:cache`)، تذكر مسح وإعادة التخزين المؤقت بعد إجراء التغييرات.

Usage | الاستخدام
-----------------

[](#usage--الاستخدام)

### Sending SMS | إرسال الرسائل القصيرة

[](#sending-sms--إرسال-الرسائل-القصيرة)

#### Using the Gateway Class | استخدام كلاس Gateway

[](#using-the-gateway-class--استخدام-كلاس-gateway)

You can resolve the `Gateway` class directly from Laravel's service container:

يمكنك استدعاء كلاس `Gateway` مباشرة من حاوية خدمات Laravel:

```
use Sms4jawaly\Laravel\Gateway;

$gateway = app(Gateway::class);

$response = $gateway->sendSms(
    'مرحباً بك في خدمتنا!',  // Message text | نص الرسالة
    ['966500000000'],          // Recipient numbers | أرقام المستلمين
    '4jawaly'                  // Sender name | اسم المرسل
);

// Response structure:
// [
//     'success'       => true,
//     'total_success' => 1,
//     'total_failed'  => 0,
//     'job_ids'       => ['job_id_here'],
//     'errors'        => []
// ]
```

#### Using the Facade | استخدام الـ Facade

[](#using-the-facade--استخدام-الـ-facade)

Alternatively, use the convenient Facade:

أو استخدم الـ Facade البسيط:

```
use Sms4jawaly\Laravel\Facades\Sms4jawaly;

$response = Sms4jawaly::sendSms(
    'Your verification code is: 123456',
    ['966500000000', '966511111111'],  // Send to multiple numbers
    '4jawaly'
);
```

### Getting Account Balance | الاطلاع على الرصيد

[](#getting-account-balance--الاطلاع-على-الرصيد)

Retrieve your current account balance and active packages:

استعرض رصيد حسابك والباقات النشطة:

```
use Sms4jawaly\Laravel\Facades\Sms4jawaly;

$balance = Sms4jawaly::getBalance();

// Response structure:
// [
//     'success' => true,
//     'data'    => [...] // API response data
// ]

if ($balance['success']) {
    // Process balance data
    $packages = $balance['data'];
}
```

### Getting Sender Names | الحصول على أسماء المرسلين

[](#getting-sender-names--الحصول-على-أسماء-المرسلين)

Retrieve all available sender names for your account:

استعرض جميع أسماء المرسلين المتاحة لحسابك:

```
use Sms4jawaly\Laravel\Facades\Sms4jawaly;

$senders = Sms4jawaly::getSenders();

// Response structure:
// [
//     'success'         => true,
//     'all_senders'     => ['4jawaly', 'MySender'],
//     'default_senders' => ['4jawaly'],
//     'message'         => 'تم'
// ]

if ($senders['success']) {
    $allSenders = $senders['all_senders'];
    $defaultSenders = $senders['default_senders'];
}
```

### Using Laravel Notifications | استخدام نظام الإشعارات

[](#using-laravel-notifications--استخدام-نظام-الإشعارات)

The package provides a notification channel for seamless integration with Laravel's notification system.

توفر الحزمة قناة إشعارات للتكامل السلس مع نظام الإشعارات في Laravel.

#### Creating a Notification | إنشاء إشعار

[](#creating-a-notification--إنشاء-إشعار)

Create a notification class using Laravel's artisan command:

أنشئ كلاس الإشعار باستخدام أمر artisan:

```
php artisan make:notification WelcomeNotification
```

Then implement the notification:

ثم قم بتطبيق الإشعار:

```
