ashik / adn-sms
Laravel Adn SMS 服务
Requires
- php: ^7.1|^8.0
- guzzlehttp/guzzle: *
README
ADN SMS网关API包,适用于Laravel。
安装
您可以通过composer在您的Laravel或Lumen应用程序中安装此包。
composer require ashik/adn-sms
Laravel
发布配置文件config/adn-sms.php
,您可以在其中调整一些默认选项。
php artisan vendor:publish --tag=adn-sms-config
在.env
文件中定义您的ADN_SMS_KEY
和ADN_SMS_SECRET
,或者更新应用程序的config/adn-sms.php
文件。
配置
首先查看./config/adn-sms.php
以了解所有可用选项。以下是一些重要选项。
服务启用/禁用
您可以从配置文件中轻松关闭整个服务以及任何API调用。如果API不可用或正在维护中,这将非常有用。请记住,如果将配置文件中的enabled
设置为false
,则响应体始终为空字符串$response->body() = ""
。
用法
单个短信
向单个接收者发送单个短信。
use Ashik\AdnSms\Facades\AdnSms; class SmsController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function send() { $response = AdnSms::to('01XXXXXXXXX') ->message('Send SMS Test.') ->send(); return $response->json(); } }
OTP短信
向单个接收者发送OTP短信。
use Ashik\AdnSms\Facades\AdnSms; class SmsController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function otp() { $response = AdnSms::otp('01XXXXXXXXX') ->message('Send OTP SMS Test.') ->send(); return $response->json(); } }
批量短信
向多个接收者发送单个短信。
批量短信发送需要campaignTitle()
作为必填项。
use Ashik\AdnSms\Facades\AdnSms; class SmsController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function bulk() { $response = AdnSms::bulk(['019XXXXXXXX', '015XXXXXXXX']) ->campaignTitle('Bulk SMS Test') ->message('Send Bulk SMS Test.') ->send(); return $response->json(); } }
队列短信发送(Laravel)
您还可以排队发送短信。您可以在queue()
方法中传递一个回调函数,以从API调用接收$response
并进一步处理它。如果您想在队列执行后将响应保存到数据库中,这将非常有用。请参阅示例以获取更详细的说明。
use Ashik\AdnSms\Facades\AdnSms; use Illuminate\Http\Client\Response; use App\Models\Table; class SmsController { public function bulk() { AdnSms::bulk(['019XXXXXXXXX', '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应用程序中创建一个可排队的工作,以执行类似操作。从您的作业中调用send()
方法,并进一步处理返回的响应。
检查余额
use Ashik\AdnSms\Facades\AdnSms; class SmsController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function someFunction() { $response = AdnSms::checkBalance(); return $response->json(); } }
检查短信状态
要检查已发送短信的状态,只需使用SMS UID调用checkSmsStatus()
方法。
use Ashik\AdnSms\Facades\AdnSms; class SmsController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function smsStatus() { $response = AdnSms::checkSmsStatus('SXXXXXXXXXXXXXXXX'); return $response->json(); } }
检查活动状态
要检查已发送短信活动的状态,只需使用活动UID调用checkCampaignStatus()
方法。
use Ashik\AdnSms\Facades\AdnSms; class SmsController { /** * Make request and return response * * @return \Illuminate\Http\Client\Response * @throws \Throwable */ public function campaignStatus() { $response = AdnSms::checkCampaignStatus('CXXXXXXXXXXXXXXXX'); return $response->json(); } }
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。