PHP code example of jaby / sms
1. Go to this page and download the library: Download jaby/sms library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jaby / sms example snippets
// In your providers array.
'providers' => [
...
Jaby\Sms\SmsServiceProvider::class,
],
// In your aliases array.
'aliases' => [
...
'Sms' => Jaby\Sms\Sms::class,
],
// Eg. if you want to use zarinpal.
'default' => 'farazsms',
'drivers' => [
'farazsms' => [
'username' => 'username',
'password' => 'password',
'urlPattern' => 'https://ippanel.com/patterns/pattern',
'urlNormal' => 'https://ippanel.com/services.jspd',
'from' => '+983000505',
],
...
]
Sms::text('Hello')->to(['numbers'])->send();
Sms::driver('your driver')->text('Hello')->to(['numbers'])->send();
Sms::pattern('your pattent code')->data([
'name' => $name ,
'code' => $code
])->to(['numbers'])->send();
Sms::...->from('sender number')-> ...->send();
'drivers' => [
'farazsms' => [...],
'my_driver' => [
... // Your Config Params here.
]
]
namespace App\Packages\Sms;
use Jaby\Sms\SmsInterface;
class MyDriver extends SmsInterface
{
protected $drive = 'farazsms';
protected $method;
protected $username;
protected $password;
protected $from;
protected $pattern_code;
protected $to;
protected $input_data;
protected $url;
protected $numbers;
protected $data;
protected $text;
/**
* farazsms constructor.
*/
public function __construct()
{
$this->username = config('sms.drivers.'.$this->drive.'.username');
$this->password = config('sms.drivers.'.$this->drive.'.password');
$this->from = config('sms.drivers.'.$this->drive.'.from');
$this->url = config('sms.drivers.'.$this->drive.'.urlPattern');
}
/**
* @return bool|mixed|string
*/
public function send()
{
if ($this->method == 'pattern')
$res = $this->sendPattern();
else
$res = $this->message($this->text);
return $res;
}
/**
* @param $text
* @return $this|mixed
*/
public function text($text)
{
$this->text = $text;
return $this;
}
/**
* @param null $pattern_code
* @return $this|mixed
*/
public function pattern($pattern_code = null)
{
$this->method = 'pattern';
if ($pattern_code)
$this->pattern_code = $pattern_code;
return $this;
}
/**
* @param array $data
* @return $this|mixed
*/
public function data(array $data)
{
$this->data = $data;
return $this;
}
/**
* @param $from
* @return $this|mixed
*/
public function from($from)
{
$this->from = $from;
return $this;
}
/**
* @param array $numbers
* @return $this|mixed
*/
public function to(array $numbers)
{
$this->numbers = $numbers;
return $this;
}
/**
* @return bool|mixed|string
*/
public function sendPattern()
{
$numbers = $this->numbers;
$pattern_code = $this->pattern_code;
$username = $this->username;
$password = $this->password;
$from = $this->from;
$to = $numbers;
$input_data = $this->data;
$url = $this->url."?username=" . $username . "&password=" . urlencode($password) . "&from=$from&to=" . json_encode($to) . "&input_data=" . urlencode(json_encode($input_data)) . "&pattern_code=$pattern_code";
$handler = curl_init($url);
curl_setopt($handler, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($handler, CURLOPT_POSTFIELDS, $input_data);
curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($handler);
return $response;
}
/**
* @param $text
* @return mixed
*/
public function message($text)
{
$this->url = config('sms.drivers.'.$this->drive.'.urlNormal');
$rcpt_nm = $this->numbers;
$param = array
(
'uname'=> $this->username ,
'pass'=> $this->password,
'from'=>$this->from,
'message'=>$text,
'to'=>json_encode($rcpt_nm),
'op'=>'send'
);
$handler = curl_init($this->url);
curl_setopt($handler, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($handler, CURLOPT_POSTFIELDS, $param);
curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
$response2 = curl_exec($handler);
$response2 = json_decode($response2);
$res_code = $response2[0];
$res_data = $response2[1];
return $res_data;
}
}
'map' => [
...
'my_driver' => App\Packages\Sms\MyDriver::class,
]