sburina / laravel-whmcs-up
WHMCS API客户端和用户提供者,适用于Laravel
Requires
- ext-json: *
- laravel/framework: ^5 || ^6 || ^7 || ^8 || ^9
README
此包为将您的Laravel应用程序与WHMCS(至7.9版本)集成提供了一些有用的功能
- WHMCS API客户端
- WHMCS用户提供者
- WHMCS自动登录
安装
通过Composer安装包。
- 在终端运行Composer require命令。
composer require sburina/laravel-whmcs-up
- 运行
composer update
以拉取文件。
Laravel 5.5之后
无需额外步骤。
Laravel 5.5之前
-
添加包的服务提供者和别名。为此,打开您的
config/app.php
文件。 -
在
providers
数组中添加新行
Sburina\Whmcs\WhmcsServiceProvider::class
- 可选地,在
aliases
数组中添加新行
'Whmcs' => Sburina\Whmcs\Facades\Whmcs::class,
- 从命令行运行
php artisan vendor:publish --provider=Sburina\Whmcs\WhmcsServiceProvider
- 打开
config\whmcs.php
以查看可用的配置选项。配置包的首选方法是使用项目中.env
文件中的环境变量。
现在您可以在您的Laravel项目中使用此包。
用法
此包使用自定义签名定义了几个重要的WHMCS方法,提供了一种更简单易用和代码自动补全的方法。这些方法是
// Getters sbGetProducts($pid = null, $gid = null, $module = null); sbGetClients($limitstart = null, $limitnum = null, $sorting = null, $search = null); sbGetClientsDetails($email = null, $clientid = null, $stats = false); // Login sbValidateLogin($email, $password2); // AutoLogin getAutoLoginUrl($goto = null); redirectAutoLogin($goto = null);
可以通过调用\Whmcs::{WHMCS_API_METHOD}
外观魔术地使用所有其他WHMCS API方法。这也适用于存储在您的WHMCS API文件夹中的所有自定义API函数。有关WHMCS API方法的完整规范,请参阅WHMCS API索引。
示例
使用我们的方法获取用户详情
\Whmcs::sbGetClientsDetails($email);
使用原始WHMCS API方法通过魔术调用完成相同的事情
\Whmcs::GetClientsDetails([ 'email' => 'jane.doe@example.com' ]);
获取客户购买的产品列表
\Whmcs::GetClientsProducts([ 'clientid' => 18122013 ]);
检索特定发票
\Whmcs::GetInvoice([ 'invoiceid' => 100001 ]);
如果您出于任何原因不喜欢外观,可以使用app()
辅助函数。
$whmcs = app('whmcs'); $whmcs->GetInvoice([ 'invoiceid' => 100001 ]);
对WHMCS用户库进行身份验证
如果您的Laravel应用程序没有自己的用户库,但在允许用户访问某些页面之前(不是 WHMCS页面)仍需要验证用户,则需要采取一些额外步骤
- 在AuthServiceProvider的boot()方法中注册用户提供者
public function boot() { $this->registerPolicies(); Auth::provider('whmcs', function () { return new \Sburina\Whmcs\UserProvider(); }); }
- 在
config/auth.php
中定义新的提供者
'providers' => [ 'users' => [ 'driver' => 'whmcs', ],
- 在同一个文件中,
web
保护程序已经配置为使用users
提供者,因此不需要更改任何内容。您可以决定给提供者一个不同的名字,在这种情况下,您需要为相应的保护程序定义相同的名字。
现在您可以使用现有的Laravel Auth::routes()
,与已经提供的auth
页面一样,完全相同的方式,就像您有一个本地用户库一样。
登录成功后,在config/whmcs.php
中命名的session_key
(默认为user
)将填充从WHMCS检索的用户数据,并且登录会话将像往常一样启动。auth()->check()
和auth()->guest()
将正常工作,而auth()->user()
将返回一个填充了用户数据的WhmcsUser
类实例。在登录会话进行期间且存在会话键user
时,不会再次从WHMCS检索用户数据。
注销时,将销毁会话键user
并结束登录会话。
远程登录/重定向
通过这种方式登录到您的Laravel应用程序的用户不会自动登录到WHMCS!为了将已验证的用户重定向到任何受保护的WHMCS页面,并同时自动登录到WHMCS,您可以使用
return \Whmcs::redirectAutoLogin();
config/whmcs.php
配置文件中的autoauth.goto
选项来确定此类重定向的默认URI。您可以通过向此方法添加参数来覆盖默认设置
return \Whmcs::redirectAutoLogin('cart.php');
如果您只想获取登录URL并从您自己的代码中将其发送给用户,可以这样做
$url = \Whmcs::getAutoLoginUrl();
同样,您可以覆盖默认URI
$url = \Whmcs::getAutoLoginUrl('cart.php');
要了解更多关于此功能以及如何在WHMCS中启用它的信息,请参阅WHMCS AutoAuth。
支持
许可协议
本软件包遵循MIT许可协议发布。有关详细信息,请参阅附带文件LICENSE。