Code Monkey home page Code Monkey logo

arif98741 / laravelbdsms Goto Github PK

View Code? Open in Web Editor NEW
134.0 5.0 47.0 3.16 MB

Xenon\LaravelBDSms is a laravel based multi sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways like sslsms, greenweb, dianahost, metronet, boomcast, bulksmsbd, adn, mobireach, tense, banglalink. You can see installation from https://youtu.be/i2wjLNoIvIo

License: MIT License

PHP 100.00%
sms-gateway bangladeshi-sms-gateway laravel-sms laravel-sms-gateway sms-gateway-package bd-sms-gateway sslcommerz sslcommerz-api-laravel bulksms-api bulksmsbd

laravelbdsms's Introduction

Xenon\LaravelBDSms is a sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways for Laravel Framework. You can watch installation process from youtube.

Installation

Step 1:

composer require xenon/laravelbdsms

Step 2:

Publish the package using command

php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider --tag="migrations"
php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider --tag="config"
php artisan migrate

Step 3:

Select Vendor From Console

Step 4:

php artisan config:cache && php artisan migrate

Usage

Simply use the facade

Note: For sending message using facade you must have to set .env credentials and set default provider; Find .env credentials for different providers from inside config/sms.php)

use Xenon\LaravelBDSms\Facades\SMS;

SMS::shoot('017XXYYZZAA', 'helloooooooo boss!');
SMS::shoot(['017XXYYZZAA','018XXYYZZAA'], 'helloooooooo boss!'); 

Or, with facade alias

use LaravelBDSms, SMS;

LaravelBDSms::shoot('017XXYYZZAA', 'helloooooooo boss!');
SMS::shoot('017XXYYZZAA', 'helloooooooo boss!');

Or, if you need to change the default provider on the fly

use Xenon\LaravelBDSms\Facades\SMS;
use Xenon\LaravelBDSms\Provider\Ssl;

$response = SMS::via(Ssl::class)->shoot('017XXYYZZAA', 'helloooooooo boss!');

Or, you can send message with queue. This queue will be added in your jobs table. Message will be sent as soon as job is run.

Make sure you have jobs table and other jobs related functionalities enabled

use Xenon\LaravelBDSms\Facades\SMS;
use Xenon\LaravelBDSms\Provider\Ssl;

SMS::shootWithQueue("01XXXXXXXXX",'test sms');
SMS::via(Ssl::class)->shootWithQueue("01XXXXXXXXX",'test sms');

Log Generate

You can generate log for every sms api request and save in database or file. For doing this. Follow below points

  1. Laravelbdsms stores log in two drivers(database, file). database is default. You can change it from config/sms.php
  2. Find and make true 'sms_log' => true,
  3. Be confirm you have completed step-2 and step-3
  4. For database driver
    1. Change log driver to log_driver =>'database' from config/sms.php
    2. Run command php artisan migrate. This will create lbs_log table in your database
  5. For file driver
    1. Change log driver to log_driver =>'file' from config/sms.php

Otherwise, if you want more control, you can use the underlying sender object. This will not touch any laravel facade or service provider.

Sample Code

SSLCommerz

use Xenon\LaravelBDSms\Provider\Ssl;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(Ssl::class); //change this provider class according to need
$sender->setMobile('017XXYYZZAA');
//$sender->setMobile(['017XXYYZZAA','018XXYYZZAA']);
$sender->setMessage('helloooooooo boss!');
$sender->setQueue(true); //if you want to sent sms from queue
$sender->setConfig(
   [
       'api_token' => 'api token goes here',
       'sid' => 'text',
       'csms_id' => 'sender_id'
   ]
);
$status = $sender->send();

----------Demo Response Using SSL-------------
array:6 [โ–ผ
  "status" => "response"
  "response" => "{"status":"FAILED","status_code":4003,"error_message":"IP Blacklisted"}"
  "provider" => "Xenon\LaravelBDSms\Provider\Ssl"
  "send_time" => "2021-07-06 08:03:23"
  "mobile" => "017XXYYZZAA"
  "message" => "helloooooooo boss!"
]
--------------------------------------------------

Sms Send Using Custom Gateway

We have tried to added most of the gateways of Bangladesh in this package as much as possible. But still if you don't find your expected gateway in this list, then use Custom Gateway using following code snippet.

use Xenon\LaravelBDSms\Provider\CustomGateway;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(CustomGateway::class);
$sender->setUrl('https://your_cusom_gateway_provider_url_here')
        ->setMethod('post')
        ->setHeaders([
            'Content-Type: application/json',
            'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        ], false);
$sender->setMobile('017XXYYZZAA');
$sender->setMessage('text message goes here');
$sender->setQueue(false);
//use required parameters based on your sms gateway. This will be changed according to need
$sender->setConfig(
    [
        'MsgType' => 'TEXT',
        'masking' => 'sample',
        'userName' => 'test_user',
        'message' => 'test message',
        'receiver' => '017xxxxxxxxxx',
    ]
);
echo $status = $sender->send();

Currently Supported Sms Gateways

Provider Credentials Required
For Sending SMS
Support Multiple Status Comment Contact
AjuraTech apikey, secretkey , callerID - Done - -
Adn api_key, type, senderid - Done - -
Alpha api_key Yes Done - -
Banglalink userID, passwd , sender - Done - -
BDBulkSMS token - Done - -
BoomCast masking , userName , password - Done - -
BulksmsBD api_key,senderid - Done - -
CustomGateway provide necessary token/api_key/others based on requirements - Done Be careful using this and test based on several scenario -
DianaHost api_key, type, senderid - Done - -
DianaSMS ApiKey, ClientId, SenderId - Done - -
DurjoySoft ApiKey, SenderID - Done - -
Esms api_token, sender_id - Done - -
ElitBuzz api_key, type, senderid - Done not tested yet in live -
Grameenphone username, password, messagetype - Done not tested yet in live -
Infobip user, password - Done not tested yet in live -
Lpeek acode, apiKey, requestID, masking - Done - -
MDL api_key, type, senderid - Done not tested yet in live -
Metronet api_key, mask Done - -
MimSms api_key, type, senderid - Done - -
Mobireach Username,Password, From - Done - -
Muthofun sender_id Yes Done - -
NovocomBD ApiKey , ClientId , SenderId - Done - -
OnnoRokomSMS userName, userPassword, type, maskName, campaignName - Done not tested yet in live -
QuickSms api_key, senderid, type,scheduledDateTime - Done not tested yet in live -
RedmoITSms api_token, sender_id - Support closed -
SmartLabSMS user, password, sender - Done - -
SmsinBD api_token, senderid - Done -
SMS.net.bd api_key - Done -
SmsQ sender_id, client_id, api_key - Done -
SMSNet24 user_id, user_password, route_id(optional), sms_type_id(optional) - Done -
SmsNoc sender_id, bearer_token - Done -
SongBird apikey, secretkey, callerID - Done -
Sslsms api_token, sid, csms_id Yes Done - -
Tense user, password, campaign, masking - Done - -
Twenty4BulkSms api_key, sender_id,user_email - Done - -
TwentyFourBulkSmsBD customer_id, api_key - Done - -
Trubosms api_token, sender_id - Done - -
Viatech api_key, mask - Done - -
ZamanIT api_key, senderid,type - Done - -

Stargazers

Stargazers repo roster for @arif98741/laravelbdsms

Forkers

Forkers repo roster for @arif98741/laravelbdsms

Contributors


We are continuously working in this open source library for adding more Bangladeshi sms gateway. If you feel something is missing then make a issue regarding that. If you want to contribute in this library, then you are highly welcome to do that....

For clear documentation read this blog in Medium! and also you can download several sms providers documentations as pdf from this link!

Special thanks to
tusharkhan
tusher9352

laravelbdsms's People

Contributors

arif98741 avatar hazzazbinfaiz avatar mdhedayet avatar prantho-das avatar sim8568x avatar wddyousuf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

laravelbdsms's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.