mody / smsprovider
配置短信网关提供商并开始发送短信
2.0
2021-02-11 19:14 UTC
Requires
- php: >= 5.3.0
README
介绍
/*
* smsprovider package provides multiple connection with many sms providers.
* just set your provider configuration and start sending messages.
*
* two officially plans:
* [user, group]
* user plan is one user provider, that works only for one user [authenticated user].
* group is multiple user provider, that services a company users maybe,
* that shares the same sms provider.
*
* with group plan, your providers will have an account id number column.
* when calling your SMSProvider::configProvider() method,
* you will need this session to be set: session()->put('group_id', $group_id);
*
* username is your name columns to be displayed.
* if track is true, activities will be saved in sms_provider_track_activity table.
* user_model_namespace is your auth model. used in relationship with track table.
*
* package will create five tables .
* [
* 'sms_providers' => 'container of providers you have',
* 'sms_providers_additional_params' => 'necessary parameters we need for sending sms',
* 'sms_provider_messages' => 'messages you sent either success of failed with error codes',
* 'sms_direct_messages' => 'template messages you created for quick sending'
* 'sms_provider_track_activity' => 'track user activity while using package methods'
* ]
*/
安装
composer require mody/smsprovider
安装后,请执行以下操作
1. config/app.php
a. 服务提供者
mody\smsprovider\SMSGatewayServiceProvider::class,
b. 别名
'SMSProvider' => mody\smsprovider\Facades\SMSProvider::class,
2. 清除缓存
php artisan config:cache
3. 发布资源
php artisan vendor:publish
您可能看到以下选项,请选择此选项
Provider: mody\smsprovider\SMSGatewayServiceProvider
4. config/smsgatewayConfig.php
选择您的计划[个人用户或用户组]
'plan' => 'user'
选择是否跟踪包活动
'track' => true
选择所需的中间件
'middleware' => ['web', 'auth']
选择您的认证守卫
'guard' => 'web' # auth()->user();
添加用户名[认证用户名列]
'username' => 'mahmoud'
添加认证模型
'user_model_namespace' => 'App\User'
5. 运行此命令以生成必要的表
php artisan smsprovider:tables
功能
1. Guard Authentication support. ## 'web', 'api', ....
2. Multi Language support; Currently supports [Arabic and English].
3. you can add one or more sms provider/gateway to your account/group.
4. choose your default sms provider/gateway to send through it.
5. simple view for your account/group sms providers/gateways.
6. simple view for your account/group trash.
7. configuration changing over the recorded providers/gateways.
8. can move items to trash or destroy it for good.
9. can recover trashed items.
10. simple view for adding/updating any provider data.
11. send sms to single number or group of numbers.
12. simple view for messages sent/failed for account/group/provider.
13. call collection of providers/gateways.
14. call collection of trashed providers/gateways.
15. simple view for track activity.
16. add/edit template messages.
17. send template messages.
非常重要
使用此会话与组计划
session()->put('group_id', $group_id);
如何使用 SMSProvider
返回新的提供者设置视图:注意:您可以用它在新URL或使用此给定的一个返回视图。
SMSProvider::configProvider(); route('smsprovider.providers.setup'); url('smsprovider/setup');
向一个或多个号码发送新短信
SMSProvider::sendSMS($message, $numbers);
示例
SMSProvider::sendSMS('hi, Mahmoud', '20106xxxxxxx');
SMSProvider::sendSMS('hi, group member', '20106xxxxxxx,0120xxxxxxx,20111xxxxxxx');
*** 预期响应 ***
'0: error_code' => 'sending failed, and error code is given',
'1' => 'messege delivered successfully',
'2' => 'no response from destination or connection error',
'3' => 'no provider found'
返回单个提供者配置视图/编辑 视图
SMSProvider::editProvider($provider_id); route('smsprovider.providers.edit_provider', $provider_id); url('smsprovider/edit-provider/' . $provider_id);
将提供者移动到回收站[软删除]
SMSProvider::deleteProvider($provider_id');
*** 预期响应 ***
true or false
销毁提供者[小心,删除提供者意味着您将丢失{配置,消息,...}]
SMSProvider::destroyProvider($provider_id');
*** 预期响应 ***
true or false
设置默认提供者
SMSProvider::setDefaultProvider($provider_id);
*** 预期响应 ***
true or false
恢复已删除的提供者
SMSProvider::recoverProvider($provider_id);
*** 预期响应 ***
true or false
移除默认提供者
SMSProvider::removeDefaultProvider();
*** 预期响应 ***
true or false
获取提供者 => [每页20个]
返回认证用户的集合
SMSProvider::myProviders();
返回用户的集合
SMSProvider::groupProviders();
返回认证用户的视图
SMSProvider::myProvidersView(); route('smsprovider.providers.user-providers'); url('smsprovider/user-providers');
返回用户的视图
SMSProvider::groupProvidersView(); route('smsprovider.providers.group-providers'); url('smsprovider/group-providers');
获取已删除的提供者 => [每页20个]
返回认证用户的集合
SMSProvider::myTrashedProviders();
返回用户的集合
SMSProvider::groupTrashedProviders();
返回认证用户的视图
SMSProvider::myTrashedProvidersView(); route('smsprovider.providers.user-trashed-providers'); url('smsprovider/user-trashed-providers');
返回用户的视图
SMSProvider::groupTrashedProvidersView(); route('smsprovider.providers.group-trashed-providers'); url('smsprovider/group-trashed-providers');
跟踪活动
认证用户跟踪 [每页20个]
SMSProvider::track(); SMSProvider::trackView(); route('smsprovider.providers.user-track'); url('smsprovider/user-track');
用户组跟踪 [每页20个]
SMSProvider::groupTrack(); SMSProvider::groupTrackView(); route('smsprovider.providers.group-track'); url('smsprovider/group-track');
消息日志活动
认证用户日志 [每页20个]
SMSProvider::log(); SMSProvider::logView(); route('smsprovider.providers.user-log'); url('smsprovider/user-log');
用户组日志 [每页20个]
SMSProvider::groupLog(); SMSProvider::groupLogView(); route('smsprovider.providers.group-log'); url('smsprovider/group-log');
准备好模板
存储一个或多个模板**
$array = [
['title' => 'greets', 'message' => 'hello there'],
['title' => 'bye', 'message' => 'goodbye'],
];
SMSProvider::storeTemplates($array);
您也可以使用视图来执行此操作
SMSProvider::createTemplates();
更改模板状态
SMSProvider::changeTemplateStatus($template_id);
删除模板
SMSProvider::trashTemplate($template_id);
恢复模板
SMSProvider::recoverTemplate($template_id);
删除模板
SMSProvider::removeTemplate($template_id);
认证用户模板 [每页20个]
SMSProvider::templates(); SMSProvider::trashedTemplates(); SMSProvider::templatesView(); SMSProvider::trashTemplatesView(); route('smsprovider.providers.user-templates'); url('smsprovider/user-templates');
用户组模板 [每页20个]
SMSProvider::groupTemplates(); SMSProvider::groupTrashedTemplates(); SMSProvider::groupTemplatesView(); SMSProvider::groupTrashTemplatesView(); route('smsprovider.providers.group-templates'); url('smsprovider/group-templates');