diff --git a/config/textify.php b/config/textify.php index 4100437..10bdba9 100644 --- a/config/textify.php +++ b/config/textify.php @@ -71,7 +71,7 @@ 'sender_id' => env('DHOROLA_SENDER_ID'), 'base_uri' => env('DHOROLA_BASE_URI', 'https://api.dhorolasms.net'), 'timeout' => env('DHOROLA_TIMEOUT', 30), - 'verify_ssl' => env('DHOROLA_VERIFY_SSL', true), + 'verify_ssl' => env('DHOROLA_VERIFY_SSL', false), ], 'bulksmsbd' => [ @@ -92,7 +92,7 @@ 'campaign_id' => env('MIMSMS_CAMPAIGN_ID'), 'base_uri' => env('MIMSMS_BASE_URI', 'https://api.mimsms.com'), 'timeout' => env('MIMSMS_TIMEOUT', 30), - 'verify_ssl' => env('MIMSMS_VERIFY_SSL', true), + 'verify_ssl' => env('MIMSMS_VERIFY_SSL', false), ], 'esms' => [ @@ -101,7 +101,7 @@ 'sender_id' => env('ESMS_SENDER_ID'), 'base_uri' => env('ESMS_BASE_URI', 'https://login.esms.com.bd'), 'timeout' => env('ESMS_TIMEOUT', 30), - 'verify_ssl' => env('ESMS_VERIFY_SSL', true), + 'verify_ssl' => env('ESMS_VERIFY_SSL', false), ], 'revesms' => [ @@ -113,7 +113,7 @@ 'base_uri' => env('REVESMS_BASE_URI', 'https://smpp.revesms.com:7790'), 'balance_uri' => env('REVESMS_BALANCE_URI', 'https://smpp.revesms.com'), 'timeout' => env('REVESMS_TIMEOUT', 30), - 'verify_ssl' => env('REVESMS_VERIFY_SSL', true), + 'verify_ssl' => env('REVESMS_VERIFY_SSL', false), ], 'alphasms' => [ @@ -122,7 +122,7 @@ 'sender_id' => env('ALPHASMS_SENDER_ID'), 'base_uri' => env('ALPHASMS_BASE_URI', 'https://api.sms.net.bd'), 'timeout' => env('ALPHASMS_TIMEOUT', 30), - 'verify_ssl' => env('ALPHASMS_VERIFY_SSL', true), + 'verify_ssl' => env('ALPHASMS_VERIFY_SSL', false), ], // Global SMS Providers @@ -141,7 +141,7 @@ 'from' => env('NEXMO_FROM', 'Vonage APIs'), 'client_ref' => env('NEXMO_CLIENT_REF'), // Optional: Custom reference for tracking 'timeout' => env('NEXMO_TIMEOUT', 30), - 'verify_ssl' => env('NEXMO_VERIFY_SSL', true), + 'verify_ssl' => env('NEXMO_VERIFY_SSL', false), ], ], diff --git a/src/Providers/Bangladeshi/AlphaSmsProvider.php b/src/Providers/Bangladeshi/AlphaSmsProvider.php index d89b759..07394d9 100644 --- a/src/Providers/Bangladeshi/AlphaSmsProvider.php +++ b/src/Providers/Bangladeshi/AlphaSmsProvider.php @@ -20,7 +20,7 @@ protected function getClientConfig(): array return [ 'base_uri' => $this->config['base_uri'] ?? 'https://api.sms.net.bd', 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]; } diff --git a/src/Providers/Bangladeshi/DhorolaSmsProvider.php b/src/Providers/Bangladeshi/DhorolaSmsProvider.php index d589c65..dd93e4d 100644 --- a/src/Providers/Bangladeshi/DhorolaSmsProvider.php +++ b/src/Providers/Bangladeshi/DhorolaSmsProvider.php @@ -29,7 +29,7 @@ protected function getClientConfig(): array return [ 'base_uri' => $this->config['base_uri'] ?? 'https://api.dhorolasms.net', 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]; } diff --git a/src/Providers/Bangladeshi/EsmsProvider.php b/src/Providers/Bangladeshi/EsmsProvider.php index 7ddea53..c648af7 100644 --- a/src/Providers/Bangladeshi/EsmsProvider.php +++ b/src/Providers/Bangladeshi/EsmsProvider.php @@ -20,7 +20,7 @@ protected function getClientConfig(): array return [ 'base_uri' => $this->config['base_uri'] ?? 'https://login.esms.com.bd', 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]; } diff --git a/src/Providers/Bangladeshi/MimSmsProvider.php b/src/Providers/Bangladeshi/MimSmsProvider.php index 8039a31..09f3641 100644 --- a/src/Providers/Bangladeshi/MimSmsProvider.php +++ b/src/Providers/Bangladeshi/MimSmsProvider.php @@ -20,7 +20,7 @@ protected function getClientConfig(): array return [ 'base_uri' => $this->config['base_uri'] ?? 'https://api.mimsms.com', 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]; } diff --git a/src/Providers/Bangladeshi/ReveSmsProvider.php b/src/Providers/Bangladeshi/ReveSmsProvider.php index 72af82f..891e642 100644 --- a/src/Providers/Bangladeshi/ReveSmsProvider.php +++ b/src/Providers/Bangladeshi/ReveSmsProvider.php @@ -20,7 +20,7 @@ protected function getClientConfig(): array return [ 'base_uri' => $this->config['base_uri'] ?? 'https://smpp.revesms.com:7790', 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]; } @@ -140,7 +140,7 @@ public function getBalance(): float $balanceClient = new \GuzzleHttp\Client([ 'base_uri' => $balanceUri, 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]); $response = $balanceClient->get('/sms/smsConfiguration/smsClientBalance.jsp', [ diff --git a/src/Providers/BaseProvider.php b/src/Providers/BaseProvider.php index 0c27499..65b80c1 100644 --- a/src/Providers/BaseProvider.php +++ b/src/Providers/BaseProvider.php @@ -98,7 +98,7 @@ protected function getClientConfig(): array { return [ 'timeout' => $this->config['timeout'] ?? 30, - 'verify' => $this->config['verify_ssl'] ?? true, + 'verify' => $this->config['verify_ssl'] ?? false, ]; } diff --git a/tests/SslVerificationTest.php b/tests/SslVerificationTest.php new file mode 100644 index 0000000..bcb023e --- /dev/null +++ b/tests/SslVerificationTest.php @@ -0,0 +1,100 @@ +getMethod('getClientConfig'); + $method->setAccessible(true); + + return $method->invoke($provider); +} + +it('defaults SSL verification to false for all providers', function () { + + // Test ReveSmsProvider + $reveProvider = new ReveSmsProvider([ + 'apikey' => 'test_key', + 'secretkey' => 'test_secret', + 'client_id' => 'test_client', + ]); + $reveConfig = getClientConfig($reveProvider); + expect($reveConfig['verify'])->toBeFalse(); + + // Test AlphaSmsProvider + $alphaProvider = new AlphaSmsProvider([ + 'api_key' => 'test_key', + ]); + $alphaConfig = getClientConfig($alphaProvider); + expect($alphaConfig['verify'])->toBeFalse(); + + // Test DhorolaSmsProvider + $dhorolaProvider = new DhorolaSmsProvider([ + 'api_key' => 'test_key', + 'sender_id' => 'test_sender', + ]); + $dhorolaConfig = getClientConfig($dhorolaProvider); + expect($dhorolaConfig['verify'])->toBeFalse(); + + // Test EsmsProvider + $esmsProvider = new EsmsProvider([ + 'api_token' => 'test_token', + 'sender_id' => 'test_sender', + ]); + $esmsConfig = getClientConfig($esmsProvider); + expect($esmsConfig['verify'])->toBeFalse(); + + // Test MimSmsProvider + $mimProvider = new MimSmsProvider([ + 'username' => 'test@example.com', + 'apikey' => 'test_key', + ]); + $mimConfig = getClientConfig($mimProvider); + expect($mimConfig['verify'])->toBeFalse(); +}); + +it('allows SSL verification to be explicitly enabled', function () { + // Test that explicit verify_ssl=true works + $reveProvider = new ReveSmsProvider([ + 'apikey' => 'test_key', + 'secretkey' => 'test_secret', + 'client_id' => 'test_client', + 'verify_ssl' => true, + ]); + $reveConfig = getClientConfig($reveProvider); + expect($reveConfig['verify'])->toBeTrue(); + + // Test that explicit verify_ssl=false works + $alphaProvider = new AlphaSmsProvider([ + 'api_key' => 'test_key', + 'verify_ssl' => false, + ]); + $alphaConfig = getClientConfig($alphaProvider); + expect($alphaConfig['verify'])->toBeFalse(); +}); + +it('ensures ReveSmsProvider balance client also respects SSL verification setting', function () { + // Create a provider with SSL verification disabled + $provider = new ReveSmsProvider([ + 'apikey' => 'test_key', + 'secretkey' => 'test_secret', + 'client_id' => 'test_client', + 'verify_ssl' => false, + ]); + + // Verify the getBalance method exists + expect(method_exists($provider, 'getBalance'))->toBeTrue(); + + // Verify that the provider is properly configured + expect($provider)->toBeInstanceOf(ReveSmsProvider::class); +});