rahulhaque / adn-sms
ADN SMS网关API包,适用于Laravel。
Requires
- php: ^7.1|^8.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.2
- orchestra/testbench: 6.0
- phpunit/phpunit: ^8.0
README
ADN SMS网关API包,适用于Laravel。
安装
您可以通过composer在您的Laravel或Lumen应用程序中安装此包。
composer require rahulhaque/adn-sms
Laravel
发布配置文件config/adn-sms.php,您可以在其中调整一些默认选项。
php artisan vendor:publish --provider="RahulHaque\AdnSms\AdnSmsServiceProvider"
在.env文件中定义您的ADN_SMS_KEY和ADN_SMS_SECRET,或者更新应用程序的config/adn-sms.php文件。
Lumen
Laravel预装了Guzzle HTTP客户端,但是Lumen没有。由于此包依赖于它来执行API调用,因此请安装guzzle。
composer require guzzlehttp/guzzle
通过在bootstrap/app.php文件中取消注释$app->withFacades();调用,在您的Lumen应用程序中启用使用Facades。
在bootstrap/app.php文件的Register Service Providers部分中注册服务提供程序。
$app->register(RahulHaque\AdnSms\AdnSmsServiceProvider::class);
在应用程序的.env文件中定义您的ADN_SMS_KEY和ADN_SMS_SECRET。
或者通过将vendor/rahulhaque/adn-sms/config/adn-sms.php文件复制到Lumen应用程序的config/adn-sms.php中来发布配置。如果不存在,请创建目录。在bootstrap/app.php文件的Register Configuration Files部分中注册配置。
$app->configure('adn-sms');
配置
首先查看./config/adn-sms.php以了解所有开箱即用的选项。以下是一些重要的选项。
服务启用/禁用
您可以从配置文件中轻松关闭整个服务以及任何API调用。如果API出现故障或进行维护,则很有用。请记住,如果在配置文件中将enabled设置为false,则响应体始终为空字符串$response->body() = ""。
使用
单条短信
向单个收件人发送单条短信。
use RahulHaque\AdnSms\Facades\AdnSms; class SomeController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::to('01XXXXXXXXX') ->message('Send SMS Test.') ->send(); return $response->json(); } }
OTP短信
向单个收件人发送OTP短信。
use RahulHaque\AdnSms\Facades\AdnSms; class SomeController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::otp('01XXXXXXXXX') ->message('Send OTP SMS Test.') ->send(); return $response->json(); } }
批量短信
向多个收件人发送单条短信。
批量短信发送需要campaignTitle()作为必填项。
use RahulHaque\AdnSms\Facades\AdnSms; class SomeController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::bulk(['01XXXXXXXXX', '02XXXXXXXXX']) ->campaignTitle('Bulk SMS Test') ->message('Send Bulk SMS Test.') ->send(); return $response->json(); } }
Laravel队列短信发送
您还可以队列短信发送。您可以在queue()方法中传递一个回调函数来接收API调用的响应并进一步处理它。如果您想在队列执行后保存响应到数据库中,这非常有用。请参阅示例以获取更详细的信息。
use RahulHaque\AdnSms\Facades\AdnSms; use Illuminate\Http\Client\Response; use App\Models\Table; class SomeController { public function someFunction() { AdnSms::bulk(['01XXXXXXXXX', '02XXXXXXXXX']) ->campaignTitle('Bulk SMS Test') ->message('Send Bulk SMS Test.') ->queue(function (Response $response) { // Check if the response body is empty if ($response->body() != "") { // Store the $response in the database $model = new Table(); $model->data = $response->body(); $model->save(); } }); } }
请勿忘记运行php artisan queue:work。
重要:由于Lumen不支持队列可关闭,因此queue()方法在Lumen中不可用。但是,您可以在您的Lumen应用程序中创建一个可队列的任务来执行类似操作。从您的任务中调用send()方法并进一步处理返回的响应。
检查余额
use RahulHaque\AdnSms\Facades\AdnSms; class SomeController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::checkBalance(); return $response->json(); } }
检查短信状态
要检查已发送短信的状态,只需使用短信UID调用checkSmsStatus()方法即可。
use RahulHaque\AdnSms\Facades\AdnSms; class SomeController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::checkSmsStatus('SXXXXXXXXXXXXXXXX'); return $response->json(); } }
检查活动状态
要检查已发送短信活动的状态,只需使用活动UID调用checkCampaignStatus()方法即可。
use RahulHaque\AdnSms\Facades\AdnSms; class SomeController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::checkCampaignStatus('CXXXXXXXXXXXXXXXX'); return $response->json(); } }
其他选项
您还可以通过调用key()和secret()方法在运行时设置ADN SMS密钥和密钥,这将覆盖配置文件中的设置。还有一个format()方法,可以将消息格式设置为TEXT|UNICODE。
测试
在tests/Feature/AdnSmsTest.php中设置收件人号码并运行。
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全性
如果您发现任何安全相关的问题,请通过电子邮件发送到rahulhaque07@gmail.com,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。