Skip to content

Commit f7cbeef

Browse files
author
Aboozar Ghaffari
authored
Merge pull request #5 from kamyarmeshkabadi/master
receiver number validation was added for kavenegar verifylookup method. Parsa SMS adapter was added.
2 parents 3024c83 + fc95f5d commit f7cbeef

File tree

4 files changed

+65
-0
lines changed

4 files changed

+65
-0
lines changed

config/iranian_sms.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,10 @@
2525
],
2626
'slack' => [
2727
'url' => env('IRANIANSMS_SLACK_URL')
28+
],
29+
'parsasms' => [
30+
'gateway' => env('IRANIANSMS_PARSASMS_GATEWAY','http://api.parsasms.com/v2/sms/send/simple'),
31+
'api_key' => env('IRANIANSMS_PARSASMS_APIKEY','test'),
32+
'sender' => env('IRANIANSMS_PARSASMS_SENDER','test')
2833
]
2934
];

src/Adapters/KaveNegar.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public function send(String $number, String $message) {
5555

5656
public function verifyLookup(String $number, String $token, String $template)
5757
{
58+
$number = $this->filterNumber($number);
59+
5860
try{
5961
$api = $this->api;
6062
$result = $api->VerifyLookup($number,$token,$token2 = '',$token3 = '',$template,$type = null);

src/Adapters/ParsaSms.php

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
namespace Tartan\IranianSms\Adapter;
4+
5+
use Ghasedak\GhasedakApi;
6+
use Exception;
7+
8+
class ParsaSms extends AdapterAbstract implements AdapterInterface
9+
{
10+
11+
private $credential = [
12+
'gateway' => '',
13+
'api_key' => '',
14+
'sender' => ''
15+
];
16+
17+
public function __construct()
18+
{
19+
$this->credential['gateway'] = config('iranian_sms.parsasms.gateway');
20+
$this->credential['api_key'] = config('iranian_sms.parsasms.api_key');
21+
$this->credential['sender'] = config('iranian_sms.parsasms.sender');
22+
}
23+
24+
public function send(String $number, String $message)
25+
{
26+
$number = $this->filterNumber($number);
27+
$sender = $this->credential['sender'];
28+
$api_key = $this->credential['api_key'];
29+
30+
$curl = curl_init();
31+
curl_setopt_array($curl, array(
32+
CURLOPT_URL => $this->credential['gateway'],
33+
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
34+
CURLOPT_CUSTOMREQUEST => "POST",
35+
CURLOPT_POSTFIELDS => "message=$message &sender=$sender &Receptor=$number",
36+
CURLOPT_CONNECTTIMEOUT => 5,
37+
CURLOPT_TIMEOUT => 5,
38+
CURLOPT_HTTPHEADER => array(
39+
"apikey: $api_key"),
40+
CURLOPT_RETURNTRANSFER => true,
41+
));
42+
43+
$response = curl_exec($curl);
44+
curl_close($curl);
45+
46+
$response_array = json_decode($response,TRUE);
47+
48+
if (!(isset($response_array['result']) && $response_array['result'] == 'success')){
49+
throw new Exception("Error: ".$response);
50+
}
51+
52+
return $response;
53+
}
54+
}

src/Factory.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Tartan\IranianSms\Adapter\Ghasedak;
66
use Tartan\IranianSms\Adapter\MehrAfzar;
77
use Tartan\IranianSms\Adapter\KaveNegar;
8+
use Tartan\IranianSms\Adapter\ParsaSms;
89
use Tartan\IranianSms\Adapter\Slack;
910
use Tartan\IranianSms\Adapter\SmsIr;
1011
use Tartan\IranianSms\Adapter\SmsLog;
@@ -42,6 +43,9 @@ public function make($adapter = '')
4243
case 'ghasedak':
4344
return new Ghasedak();
4445
break;
46+
case 'parsasms':
47+
return new ParsaSms();
48+
break;
4549
default:
4650
throw new Exception('Adapter not defined');
4751
break;

0 commit comments

Comments
 (0)