daniyal2959/persian-sms

Package for send sms from any persian service provider to numbers

1.1.0 2024-02-28 13:40 UTC

This package is auto-updated.

Last update: 2024-05-28 14:19:34 UTC


README

alt text

PHP SMS Services

Software License Latest Version on Packagist Total Downloads on Packagist

This is a PHP library for Sms Services Integration. This library supports PHP 8.0+.

For PHP integration you can use daniyal2959/persian-sms package.

This packages works with multiple drivers, and you can create custom drivers if you can't find them in the current drivers list (below list).

List of available drivers

Help me to add the services below by creating pull requests

  • farazsms.com
  • sms.ir
  • mellipayamak.com
  • farapayamak.ir
  • ...

All services that work with ippanel can used default service ippanel

you can create your own custom drivers if it's not exists in the list, read the Create custom drivers section.

Install

Via Composer

$ composer require daniyal2959/persian-sms

Configure

Just include library's autoload.php file in your code

include_once 'vendor/autoload.php'

There is not any config file in this package. so you can set settings for your sms service provider in your code.

How to use

available methods:

  • driver: set the driver
  • text: set the message to send without pattern
  • patten: set your pattern code
  • data: set array of data pattern
  • to: set array of numbers receivers
  • from: set sender number
  • send: send your sms and return response as json or plain string

Methods with Parameters

Method driver text pattern data to from credential send
Parameter $key $text $pattern_code $data $numbers $number $credentials $asJson
Type string string string array array string array boolean
Required * * * * *

Example for sending sms message from kavenegar service provider:

$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('kavenegar')
    ->text('<MESSAGE_TO_SEND>')
    ->from('<SERVICE_PROVIDER_NUMBER>')
    ->to('<ARRAY_OF_PHONE_NUMBERS>')
    ->send();

Example for sending sms pattern from kavenegar service provider:

$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('kavenegar')
    ->pattern('<YOUR_PATTERN_NAME>')
    ->data('<ARRAY_OF_PATTERN_VALUES>') #E.g:['%token' => '1234']
    ->from('<SERVICE_PROVIDER_NUMBER>')
    ->to('<ARRAY_OF_PHONE_NUMBERS>')
    ->send();

Example for sending sms message from ippanel service provider:

$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('ippanel')
    ->text('<MESSAGE_TO_SEND>')
    ->from('<SERVICE_PROVIDER_NUMBER>')
    ->to('<ARRAY_OF_PHONE_NUMBERS>')
    ->send();

Example for sending sms pattern from ippanel service provider:

$apiKey = '<YOUR_API_KEY>';
$sms = new SMS($apiKey);
$response = $sms->driver('ippanel')
    ->pattern('<YOUR_PATTERN_CODE>')
    ->data('<ARRAY_OF_PATTERN_VALUES>')
    ->from('<SERVICE_PROVIDER_NUMBER>')
    ->to('<ARRAY_OF_PHONE_NUMBERS>')
    ->send();

Create custom drivers:

You can create your custom driver with one step. this step is:

Created a class: Sms\Driver\MyDriver.

namespace Sms\Driver;

use Sms\Contract\IDriver;
use Sms\Driver;

class MyDrive extends Driver implements IDriver
{
    const BASE_URL = '';
    
    /**
     * @return void
     */
    public function __construct()
    {
        $this->client = new Http(self::BASE_URL, 30, []);
    }
    
    /**
     * @return bool|mixed|string
     */
    public function sendPattern()
    {
        // TODO: Implement send pattern code for current service provider
    }

    /**
     * @param $text
     * @return bool|mixed|string
     */
    public function message($text)
    {
        // TODO: Implement send message code for current service provider
    }
    
    /**
     * @return void
     */
    public function setCredential()
    {
        // TODO: Implement set credential code for current service provider
    }
}

Donate (if you like it ❤️)

68747470733a2f2f636f66666565626564652e69722f44617368626f61726454656d706c61746556322f6170702d6173736574732f696d616765732f62616e6e65722f64656661756c742d79656c6c6f772e737667

Security

If you discover any security related issues, please email daniyal.s.2959@gmail.com instead of using the issue tracker.

Credits

The MIT License (MIT). Please see License File for more information.