sburina/laravel-whmcs-up

WHMCS API客户端和用户提供者,适用于Laravel

v1.0.14 2022-04-06 16:52 UTC

This package is auto-updated.

Last update: 2024-09-06 22:27:07 UTC


README

Latest Stable Version Total Downloads License

此包为将您的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

支持

请在github上提交一个问题

许可协议

本软件包遵循MIT许可协议发布。有关详细信息,请参阅附带文件LICENSE