jowusu837 / hubtel-ussd-plugin-laravel
Hubtel USSD 插件,易于集成到 Laravel 项目中
Requires
- nesbot/carbon: ^1.22
This package is not auto-updated.
Last update: 2022-05-04 17:46:27 UTC
README
关于
此包允许您将 Hubtel USSD 服务直接集成到现有的 Laravel 应用程序中。这样用户就可以通过 USSD(如 *1234#)访问您的应用程序。查看 此链接 了解如何从 Hubtel 获取 USSD 代码。
安装
在您的 composer.json
中要求 jowusu837/hubtel-ussd-plugin-laravel
包并更新您的依赖项
$ composer require jowusu837/hubtel-ussd-plugin-laravel
如果您正在使用 Laravel 5.5,这就是您需要做的全部内容。
如果您仍然在使用旧版本的 Laravel,您需要添加包的服务提供者和别名。为此,请打开您的 config/app.php
文件。
将 HubtelUssd\ServiceProvider
添加到您的 providers
数组中
Jowusu837\HubtelUssd\ServiceProvider::class,
使用
您的应用程序现在应该有一个 USSD 访问的端点。您可以使用 Hubtel USSD 模拟器通过提供应用程序 URL 来测试它:http://your-application.com/ussd
自定义
您的应用程序应该有默认的 USSD 流程,以便展示插件正在工作。您可以通过创建 Activities
来创建自己的自定义 USSD 流程。您可以从在您的 app
目录中创建一个新的名为 USSD
的文件夹开始。这是您存储所有 USSD 相关逻辑的地方。
USSD 活动只是一个简单的扩展 UssdActivity
类的 php
类。以下是它的样子
namespace App\Ussd\Activities; use App\Ussd\Activities\MenuSelection; use Jowusu837\HubtelUssd\Lib\UssdActivity; use Jowusu837\HubtelUssd\Lib\UssdResponse; class HomeActivity extends UssdActivity { public function run() { $this->response->Type = UssdResponse::RELEASE; $this->response->Message = 'Ussd is working!'; return $this; } public function next() { return MenuSelection::class; } }
基本上,如上所示的 Activity 类必须实现两个方法:run()
和 next()
。run()
方法是活动的入口点,必须始终返回 $this
。next()
必须只返回要执行的下一条活动的引用。您可以通过简单地返回一个包含活动类完整命名空间的字符串来实现这一点,或者您可以使用 ::class
方法让 php 为您解决。
您可以在活动内部访问当前请求 $this->request
,要发送的响应 $this->response
,以及当前的 USSD 会话 $this->session
。请求和响应属性分别暴露了 USSD 请求和响应的所有属性,如文档所述 这里。然而,会话属性只是一个数组。请注意,会话是在您的现有 Laravel 缓存之上实现的。会话允许您在 USSD 会话中持久化状态。您可以这样在会话中存储一个值:$this->session['name'] = 'John Doe'
,并在其他地方这样检索它:$name = $this->session['name']
。
创建完您的活动文件后,您需要在配置文件中设置您的入口点活动,如下一节所示。
配置
默认值在 config/hubtel-ussd.php
中设置。将此文件复制到您自己的配置目录中以修改值。您可以使用以下命令发布配置
$ php artisan vendor:publish --provider="Jowusu837\HubtelUssd\ServiceProvider"
return [ "home" => \App\Ussd\Activities\HomeActivity::class ];
许可协议
在 MIT 许可协议下发布,请参阅 LICENSE。