PHPackages                             recharge-meter/recharge-meter-service - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. recharge-meter/recharge-meter-service

ActiveLibrary[Payment Processing](/categories/payments)

recharge-meter/recharge-meter-service
=====================================

Laravel package for managing electrical meter recharges

1.0.1(1y ago)04MITPHPPHP ^8.2

Since Jun 15Pushed 1y agoCompare

[ Source](https://github.com/VaraAI/recharge-meter)[ Packagist](https://packagist.org/packages/recharge-meter/recharge-meter-service)[ Docs](https://github.com/recharge-meter/recharge-meter-service)[ RSS](/packages/recharge-meter-recharge-meter-service/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (4)Versions (3)Used By (0)

Laravel Recharge Meter Service
==============================

[](#laravel-recharge-meter-service)

A Laravel package for managing electrical and water meter recharges using the STS Vend System API.

Features
--------

[](#features)

- ✅ **Meter recharge token generation** (GetVendingToken)
- ✅ **Clear credit/tamper token management** (GetClearCreditToken, GetClearTamperSignToken)
- ✅ **Contract information retrieval** (GetContractInfo)
- ✅ **Meter registration and updates** (MeterRegister, MeterUpdate)
- ✅ **Use type management** (UseTypeList, AddUseType, UpdateUseType, DeleteUseType)
- ✅ **Comprehensive logging**
- ✅ **Simulation mode for testing**
- ✅ **Database tracking of all operations**

Author
------

[](#author)

**Dr Constantine Msigwa**
Email:

Installation
------------

[](#installation)

### Via Composer

[](#via-composer)

1. Install the package via Composer:

```
composer require recharge-meter/recharge-meter-service
```

2. Publish the configuration:

```
php artisan vendor:publish --tag=recharge-config
```

3. Run the migrations:

```
php artisan migrate
```

4. Configure your `.env` file:

```
RECHARGE_API_URL=http://120.26.4.119:9094
RECHARGE_SIMULATE=false
RECHARGE_LOGGING_ENABLED=true
RECHARGE_LOG_CHANNEL=daily
RECHARGE_CONNECT_TIMEOUT=10
RECHARGE_REQUEST_TIMEOUT=30
```

### Manual Installation

[](#manual-installation)

If you prefer to install manually, add the package to your `composer.json`:

```
{
    "require": {
        "recharge-meter/recharge-meter-service": "^1.0"
    }
}
```

Then run:

```
composer install
```

Quick Start
-----------

[](#quick-start)

After installation, you can start using the package immediately:

```
use RechargeMeter\RechargeMeterService\Facades\Recharge;

// Set credentials
Recharge::setCredentials('your-user-id', 'your-password');

// Get contract information
$result = Recharge::getContractInfo('22000169833', 1);

if ($result['success']) {
    echo "Contract info: " . json_encode($result['data']);
}
```

API Endpoints
-------------

[](#api-endpoints)

This package supports all STS Vend System API endpoints:

### Power Management Endpoints

[](#power-management-endpoints)

MethodEndpointDescriptionPackage MethodGET`/api/Power/GetVendingToken`Get recharge token`getVendingToken()`GET`/api/Power/GetClearCreditToken`Get clear credit token`getClearCreditToken()`GET`/api/Power/GetClearTamperSignToken`Get clear tamper sign token`getClearTamperSignToken()`GET`/api/Power/GetContractInfo`Get contract information`getContractInfo()`POST`/api/Power/MeterRegister`Register meter`registerMeter()`POST`/api/Power/MeterUpdate`Update meter`updateMeter()`### Use Type Management Endpoints

[](#use-type-management-endpoints)

MethodEndpointDescriptionPackage MethodGET`/api/UseType/UseTypeList`Get use type list`getList()`POST`/api/UseType/AddUseType`Add use type`add()`POST`/api/UseType/UpdateUseType`Update use type`update()`POST`/api/UseType/DeleteUseType`Delete use type`delete()`Usage
-----

[](#usage)

### Authentication

[](#authentication)

All operations require authentication:

```
use RechargeMeter\RechargeMeterService\Facades\Recharge;
use RechargeMeter\RechargeMeterService\Facades\UseType;

// Set credentials for meter operations
Recharge::setCredentials('your-user-id', 'your-password');

// Set credentials for use type operations
UseType::setCredentials('your-user-id', 'your-password');
```

### Power Management Operations

[](#power-management-operations)

#### 1. Get Vending Token (Recharge)

[](#1-get-vending-token-recharge)

```
// Amount-based vending (type 0)
$result = Recharge::getVendingToken('22000169833', 1, 5000, 0);

// Quantity-based vending (type 1)
$result = Recharge::getVendingToken('22000169833', 1, 100, 1);

// Backward compatibility (alias for getVendingToken)
$result = Recharge::process('22000169833', 1, 5000, 0);
```

#### 2. Get Clear Credit Token

[](#2-get-clear-credit-token)

```
$result = Recharge::getClearCreditToken('22000169833', 1);
```

#### 3. Get Clear Tamper Sign Token

[](#3-get-clear-tamper-sign-token)

```
$result = Recharge::getClearTamperSignToken('22000169833', 1);
```

#### 4. Get Contract Info

[](#4-get-contract-info)

```
$result = Recharge::getContractInfo('22000169833', 1);
```

#### 5. Register Meter

[](#5-register-meter)

```
$result = Recharge::registerMeter([
    'MeterCode' => '22000169833',
    'MeterType' => 1, // 1-Electric, 2-Water
    'CustomerName' => 'John Doe',
    'UseTypeId' => 'RES',
    'Address' => '123 Main St',
    'PhoneNumber' => '1234567890',
    'Fax' => '1234567891' // Optional
]);
```

#### 6. Update Meter

[](#6-update-meter)

```
$result = Recharge::updateMeter([
    'MeterCode' => '22000169833',
    'MeterType' => 1,
    'CustomerName' => 'John Doe Updated',
    'Address' => '456 New St',
    'PhoneNumber' => '0987654321',
    'UseTypeId' => 'RES' // Optional
]);
```

### Use Type Management Operations

[](#use-type-management-operations)

#### 1. Get Use Type List

[](#1-get-use-type-list)

```
$result = UseType::getList();
```

#### 2. Add Use Type

[](#2-add-use-type)

```
$result = UseType::add(
    useTypeId: 'RES',
    useTypeName: 'Residential',
    meterType: 1,
    price: 100.00,
    vat: 18.00
);
```

#### 3. Update Use Type

[](#3-update-use-type)

```
$result = UseType::update(
    useTypeId: 'RES',
    price: 120.00,
    vat: 20.00
);
```

#### 4. Delete Use Type

[](#4-delete-use-type)

```
$result = UseType::delete('RES');
```

Response Format
---------------

[](#response-format)

All operations return a standardized response:

```
[
    'success' => true|false,
    'data' => [...] | null,
    'error' => 'error message' | null,
    'history_id' => 123 // For recharge operations
]
```

API Parameters
--------------

[](#api-parameters)

### GetVendingToken Parameters

[](#getvendingtoken-parameters)

- `MeterCode` (string, required): Meter code (max 13 characters)
- `MeterType` (integer, required): 1 for Electric, 2 for Water
- `AmountOrQuantity` (float, required): Recharge amount or quantity
- `VendingType` (integer, required): 0 for amount-based, 1 for quantity-based

### MeterRegister Parameters

[](#meterregister-parameters)

- `MeterCode` (string, required): Meter code(s) - supports up to 20 codes separated by commas
- `MeterType` (integer, required): 1 for Electric, 2 for Water
- `CustomerName` (string, required, max 20 chars): Customer name
- `UseTypeId` (string, required): Use type ID
- `Address` (string, optional, max 50 chars): Customer address
- `PhoneNumber` (string, optional, max 20 chars): Phone number
- `Fax` (string, optional, max 20 chars): Fax number

### AddUseType Parameters

[](#addusetype-parameters)

- `UseTypeId` (string, required, max 10 chars): Use type ID
- `UseTypeName` (string, required, max 20 chars): Use type name
- `MeterType` (integer, required): 1 for Electric, 2 for Water
- `Price` (float, required): Unit price (0 to 1,000,000,000,000,000)
- `Vat` (float, required): Tariff (0 to 1,000,000,000,000,000)

Configuration
-------------

[](#configuration)

The package configuration file (`config/recharge.php`) contains the following settings:

```
return [
    'api_url' => env('RECHARGE_API_URL', 'http://120.26.4.119:9094'),
    'simulate' => env('RECHARGE_SIMULATE', false),
    'logging_enabled' => env('RECHARGE_LOGGING_ENABLED', true),
    'log_channel' => env('RECHARGE_LOG_CHANNEL', 'daily'),
    'connect_timeout' => env('RECHARGE_CONNECT_TIMEOUT', 10),
    'request_timeout' => env('RECHARGE_REQUEST_TIMEOUT', 30),
];
```

Testing
-------

[](#testing)

The package includes a simulation mode for testing. Enable it in your `.env`:

```
RECHARGE_SIMULATE=true
```

Run the tests:

```
vendor/bin/phpunit
```

Error Handling
--------------

[](#error-handling)

All operations include comprehensive error handling and logging. Errors are:

- Logged to the configured channel
- Stored in the database for recharge operations
- Returned in a standardized format

Examples
--------

[](#examples)

Check the `examples/` directory for complete usage examples:

- `basic-usage.php` - Simple recharge example
- `api-usage-example.php` - Comprehensive API examples
- `test-contract-info.php` - Testing script

Requirements
------------

[](#requirements)

- PHP &gt;= 8.2
- Laravel &gt;= 10.0
- GuzzleHTTP &gt;= 7.8

Support
-------

[](#support)

For support, please contact:

- **Email**:
- **Author**: Dr Constantine Msigwa

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

Changelog
---------

[](#changelog)

### Version 1.0.1

[](#version-101)

- Added all STS Vend System API endpoints
- Updated method names to match OpenAPI specification
- Added comprehensive API documentation
- Improved error handling and logging
- Added backward compatibility for existing methods

### Version 1.0.0

[](#version-100)

- Initial release
- Meter recharge functionality
- Use type management
- Comprehensive logging
- Database tracking
- Simulation mode for testing

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance50

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Total

2

Last Release

365d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/80386833?v=4)[Dr. Constantino Msigwa](/maintainers/Constantino2019-et)[@Constantino2019-et](https://github.com/Constantino2019-et)

---

Top Contributors

[![Constantino2019-et](https://avatars.githubusercontent.com/u/80386833?v=4)](https://github.com/Constantino2019-et "Constantino2019-et (4 commits)")

---

Tags

laravelbillingmeterrechargeelectrical

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/recharge-meter-recharge-meter-service/health.svg)

```
[![Health](https://phpackages.com/badges/recharge-meter-recharge-meter-service/health.svg)](https://phpackages.com/packages/recharge-meter-recharge-meter-service)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M985](/packages/statamic-cms)[backpack/crud

Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.

3.4k3.7M222](/packages/backpack-crud)[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[bagisto/bagisto

Bagisto Laravel E-Commerce

27.6k172.1k9](/packages/bagisto-bagisto)[lemonsqueezy/laravel

A package to easily integrate your Laravel application with Lemon Squeezy.

590128.3k](/packages/lemonsqueezy-laravel)[firefly-iii/data-importer

Firefly III Data Import Tool.

8045.8k](/packages/firefly-iii-data-importer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
