hubtel-gh/general-services-sdk-php

用于使用hubtel ussd系统的框架。

dev-master 2020-09-14 15:26 UTC

This package is auto-updated.

Last update: 2024-09-15 00:21:45 UTC


README

简介

这是一个用于在PHP中构建针对 Hubtel可编程服务 的ussd应用的框架。

该项目是从 原始的C#版本PHP USSD框架 转移过来的。

目的

有多种方式可以集成 Hubtel可编程服务,本项目特别适用于与PHP集成。

规格

  • 应用程序配置设置
  • PHP面向对象架构
  • 会话存储Redis存储或任何RDMBS
  • 开发标准

安装

1 需要 Composer PHP通用服务框架 https://github.com/hubtel/general-services-sdk-php 可在较新的PHP版本上顺利运行。Hubtel可编程服务PHP SDK可以使用Composer安装。运行以下命令

$ composer require hubtel-gh/general-services-sdk-php

# 或者克隆仓库到您的机器/服务器,然后导航到项目。

2 使用Redis或任何RDMBS创建会话存储 对于Redis,创建一个实现 \HubtelUssdFramework\SessionStore 的Redis存储,相应地配置。

'scheme' => '',
'host'   => '',
'port'   => ''

3 在Index.php文件中定义应用程序设置

Ussd::process('logger file', 'RedisStore', 'USSDApp', 'USSDMain', 'Main startup method/action for the USSD('start')', 'server');

USSDApp - # the folder that contains all your ussd applications logic
USSDMain - # the main controller/class of your ussd logic
start - # the main action/function/method of your ussd logic 
storageType - # RedisStore
'./general.log' - # path to your logger file

示例

    Ussd::process('./general.log', new RedisStore(), 'USSDApp', 'USSDMain', 'start', $_ENV['SERVER']);

用法

使用以下命令运行脚本

$ php -S (Server address)

演示

...
    
    # Main startup method/action for the USSD initiates the USSD session
    public function start()
    {
        $menu = new \UssdFramework\UssdMenu();
        $menu->header($this->_header)
                ->createAndAddItem('List Items', 'list_items')
                ->createAndAddItem('Exit', 'close', 'Main');
        return $this->renderMenu($menu);
    }

     public function list_items()
    {$menuHeader = 'Menu Header';

        $menu = new \UssdFramework\UssdMenu();
        $menu->header($menuHeader)
                ->createAndAddItem('Sunday', 'e_menu')
                ->createAndAddItem('Monday', 'e_menu')
                ->createAndAddItem('Tuesday', 'e_menu')
                ->createAndAddItem('Wednesday', 'e_menu')
                ->createAndAddItem('Thurday', 'e_menu')
                ->createAndAddItem('Friday', 'e_menu')
                ->createAndAddItem('Saturday', 'e_menu')
                ->addItem(new \UssdFramework\UssdMenuItem('0', 'Back', 'e_menu'));

        return $this->renderMenu($menu);
    }

    # display the menu
    public function e_menu(){

        return $this->redirect('start');
    }

     # Close user's USSD session
    public function close()
    {
        # closing message
        $message = "$this->_header \n\nThank you for using our USSD service";
        return $this->render($message);
    }
...

开发环境设置

  1. 安装 Docker
  2. 运行Redis Docker镜像
$ docker run -d -p 6379:6379 --name redis1 redis
  1. 资源