gashey/laravel-mobiverse-ussd

便于集成到Laravel项目的Mobiverse USSD插件

0.0.2 2019-11-06 23:21 UTC

This package is auto-updated.

Last update: 2024-09-07 09:49:05 UTC


README

Latest Release on GitHub Software License Total Downloads

关于

这是一个帮助您将Mobiverse USSD服务集成到Laravel应用程序的包。用户可以通过手机上的代码(如*1234#)访问您的应用程序。

本包使用了Victor James Owusu创建的https://github.com/jowusu837/hubtel-ussd-plugin-laravel中的代码。

安装

在您的composer.json中需要gashey/laravel-mobiverse-ussd包并更新依赖项

$ composer require gashey/laravel-mobiverse-ussd

LaravelMobiverseUssd\UssdServiceProvider添加到您的providers数组中

Gashey\LaravelMobiverseUssd\ServiceProvider::class,

使用方法

您的应用程序现在应该有一个用于USSD访问的端点。您可以使用Mobiverse 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 Gashey\LaravelMobiverseUssd\Lib\UssdActivity;
use Gashey\LaravelMobiverseUssd\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;
    }

}

活动类必须实现2个方法:run()next()

run()方法是活动的入口点,必须始终返回$this

next()必须返回要执行的下个活动的引用。您可以通过简单地返回一个包含下个活动类的完整命名空间的字符串或使用::class方法让PHP为您解析来实现。

您可以在活动内部访问当前请求$this->request、要发送的响应$this->response以及当前的USSD会话$this->session

请求和响应属性分别公开了USSD请求和响应的所有属性。

会话属性是一个数组。请注意,会话是在您现有的Laravel缓存之上实现的。它允许您在USSD会话期间保持状态。您可以如下存储会话值:$this->session['name'] = 'Jane Deer',然后在其他地方检索它:$name = $this->session['name']

一旦创建了活动文件,您需要在配置文件中设置入口点活动,如下一节所示。

配置

默认设置在config/ussd.php中设置。使用以下命令发布配置

$ php artisan vendor:publish --provider="Gashey\LaravelMobiverseUssd\UssdServiceProvider"
return [
    "home" => \App\Ussd\Activities\HomeActivity::class
];

许可证

在MIT许可证下发布,请参阅LICENSE