jowusu837/hubtel-ussd-plugin-laravel

此包已被废弃,不再维护。未建议替代包。

Hubtel USSD 插件,易于集成到 Laravel 项目中

1.0.1 2018-01-18 14:38 UTC

This package is not auto-updated.

Last update: 2022-05-04 17:46:27 UTC


README

Latest Release on GitHub Software License Total Downloads

基于 Hubtel 的 USSD API

关于

此包允许您将 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() 方法是活动的入口点,必须始终返回 $thisnext() 必须只返回要执行的下一条活动的引用。您可以通过简单地返回一个包含活动类完整命名空间的字符串来实现这一点,或者您可以使用 ::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