RE: BoxBilling Plugin

  • I'm pleasure to announce that an i-MSCP client (Server Manager) for BoxBilling will coming soon. For now, I 'm developing a Rest server, and also a BoxBilling plugin that will act as a Web service controller (i-MSCP side). To resume this plugin will allow to use the free billing software with i-MSCP, a very good alternative to the WHMCS billing system that is unfortunately no free of use.


    To resume with few skeletons:


    [code=php]


    // i-MSCP side


    /**
    * i-MSCP Rest server
    */
    class iMSCP_Server_Rest
    {


    }


    /**
    * Plugin that act as Web service controller for the BoxBilling client (Server Manager)
    */
    iMSCP_Plugins_BoxBilling extends iMSCP_Plugin_Action implements iMSCP_Events_Listeners_Interface
    {
    /**
    * @var iMSCP_Server_Rest
    */
    protected $_server;


    /**
    * @var string Listened event
    */
    protected $_listenedEvents = 'onRestRequest';


    /**
    * Register a callback for the given event(s).
    *
    * @param iMSCP_Events_Manager_Interface $controller
    */
    public function register(iMSCP_Events_Manager_Interface $controller)
    {
    $controller->registerListener($this->getListenedEvents(), $this);
    $this->_controller = $controller;
    }


    /**
    * Implements the onRestRequest rest listener method.
    *
    * @param iMSCP_Events_Event $event
    */
    public function onRestRequest($events)
    {
    try {
    $this->_server = new iMSCP_Server_Rest($event->getParam('request', $_REQUEST));
    $this->_server->setServiceClass(__CLASS__)->handle();
    } catch(Exception $e) {
    // do something
    }
    }


    /**
    * Implement the iMSCP_Events_Listener interface
    *
    * @return string
    */
    public function getListenedEvents()
    {
    return $this->_listenedEvents;
    }


    // Method (needed by the BoxBilling server manager)


    public function getLoginUrl()
    {


    }


    public function getResellerLoginUrl()
    {


    }


    public function testConnection()
    {


    }


    public function createAccount()
    {


    }


    public function synchronizeAccount()
    {


    }


    public function suspendAccount() {


    }
    public function unsuspendAccount()
    {


    }


    public function cancelAccount())
    {


    }


    public function changeAccountPassword()
    {


    }


    public function changeAccountUsername(Server_Account $a, $new_username)
    {


    }


    public function changeAccountDomain()
    {


    }


    public function changeAccountIp(Server_Account $a, $new_ip)
    {


    }

    public function changeAccountPackage(Server_Account $a, Server_Package $p)
    {


    }
    }


    // BoxBilling side (server manager)


    class Server_Manager_Imscp extends Server_Manager
    {
    public static function getForm()
    {
    return array(
    'label' => 'i-MSCP Server Manager',
    );
    }


    public function getLoginUrl()
    {


    }


    public function getResellerLoginUrl()
    {


    }


    public function testConnection()
    {


    }


    public function synchronizeAccount(Server_Account $a)
    {


    }


    public function createAccount(Server_Account $a)
    {


    }


    public function suspendAccount(Server_Account $a)
    {


    }


    public function unsuspendAccount(Server_Account $a)
    {


    }


    public function cancelAccount(Server_Account $a)
    {


    }


    public function changeAccountPackage(Server_Account $a, Server_Package $p)
    {


    }


    public function changeAccountUsername(Server_Account $a, $new)
    {


    }


    public function changeAccountDomain(Server_Account $a, $new)
    {


    }


    public function changeAccountPassword(Server_Account $a, $new)
    {


    }


    public function changeAccountIp(Server_Account $a, $new)
    {


    }
    }
    [/php]

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().


  • Thanks for the announcement will come as the BoxBilling plugin on the I-MSCP or do we install it separately?
    Is what it costs?



    Hello ;


    A little interface for plugin management will come soon. That interface (to begin) will allow you to disable/enable any plugin installed in the plugins directory (gui/plugins).


    For now, only the enable and disable actions will be implemented but later, you will be also able to configure any plugin that implements a settings interface. Also, since some plugins can require installation/deinstallation process, something will be done for that too.


    All i-MSCP plugins will be available soon in a specific git repository.


    Note: All i-MSCP plugins (officially maintained) will be free. Now, if someone want promote a plugin no free of use, he can do that on its own site but in any case, no support for its plugin will be made by the i-MSCP developement team.


    The BoxBilling plugin will be released under the terms of the GPLv2.

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

  • The BoxBilling plugin is not ready yet. It'll be available soon.

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206


  • The BoxBilling plugin is not ready yet. It'll be available soon.


    lol Two is longer.

    my System :

    - Distribution: Debian | Release: 9.13 | Codename: wheezy
    - i-MSCP Version: i-MSCP 1.5.3| Build: 20181208 | Codename: Ennio Morricone
    - Plugins installed: ClamAV (v. 1.3.0), Mailgraph (v 1.1.1), OpenDKIM (v 2.0.0), SpamAssassin (v 2.0.1)
    - LetsEncrypt (v3.3.0), PhpSwitcher (v 5.0.5), RoundcubePlugins (v 2.0.2)YubiKeyAuth 1.1.0

  • Hi,


    Just wondering if there is any update on this. Is there active work on it? I can try to help if needed.


    Thanks!

  • Since I've been invited by Torsten (gOOvER) to rejoin the team, I'll so implement the boxbilling plugin by using the iMSCP events dispatcher and plugin action interface. This plugin will be available as soon possible.


    Cheers

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().

  • ooo that's great to hear :D


    I didn't want to pay for WHMCS (though I know it's the best...) so I had to write my own PHP order file that would email me the account details for me to manually set up the accounts...


    That would have gotten very annoying, very fast lol