PHPackages                             pils36/rexpay - 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. [API Development](/categories/api)
4. /
5. pils36/rexpay

ActiveLibrary[API Development](/categories/api)

pils36/rexpay
=============

Helps make your Rexpay api calls with PHP.

v1.0.0(2y ago)0161MITPHP

Since Feb 9Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Pils36/rexpay)[ Packagist](https://packagist.org/packages/pils36/rexpay)[ RSS](/packages/pils36-rexpay/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (5)Versions (2)Used By (0)

rexpay
======

[](#rexpay)

A PHP API wrapper for [Rexpay](https://www.myrexpay.com/).

[![Rexpay](img/rexpay.svg "Rexpay")](https://www.myrexpay.com/)

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

[](#requirements)

- Curl 7.34.0 or more recent (Unless using Guzzle)
- PHP 5.4.0 or more recent

Install
-------

[](#install)

### Via Composer

[](#via-composer)

```
    $ composer require pils36/rexpay
```

### Via download

[](#via-download)

Download a release version from the [releases page](https://github.com/Pils36/rexpay/releases). Extract, then:

```
    require 'path/to/src/autoload.php';
```

Usage
-----

[](#usage)

Do a redirect to the authorization URL received from calling the /transaction endpoint. This URL is valid for one time use, so ensure that you generate a new URL per transaction.

When the payment is successful, we will call your callback URL (as setup in your dashboard or while initializing the transaction) and return the reference sent in the first step as a query parameter.

If you use a test secret key, we will call your test callback url, otherwise, we'll call your live callback url.

### 0. Prerequisites

[](#0-prerequisites)

Confirm that your server can conclude a TLSv1.2 connection to Rexpay's servers. Most up-to-date software have this capability. Contact your service provider for guidance if you have any SSL errors. *Don't disable SSL peer verification!*

### 1. Prepare your parameters

[](#1-prepare-your-parameters)

`email`, `userId`, `amount`, `description`, `reference` and `authToken` are the most common compulsory parameters.

### 2. Initialize a transaction

[](#2-initialize-a-transaction)

Initialize a transaction by calling our API.

### Note: $authtoken is a Basic Authentication Token

[](#note-authtoken-is-a-basic-authentication-token)

Your username:password in base64 encoded. You can reference the link to generate basic authentication token

### [Click to Generate Basic Auth Header](https://www.debugbear.com/basic-auth-header-generator)

[](#click-to-generate-basic-auth-header)

```
    require_once('./vendor/autoload.php');

    $rexpay = new \Pils36\Rexpay;

    try
    {

      $tranx = $rexpay->transaction->initialize([
        'reference'=>"sm23oyr1122",     // string
        'amount'=>200,     // integer
        'currency'=>"NGN",     // string
        'userId'=>"awoyeyetimilehin@gmail.com",     // string
        'callbackUrl'=>"google.com",     // string
        'metadata'=> ['email' => "awoyeyetimilehin@gmail.com", 'customerName' => "Victor Musa"], // string
        'authToken'=> $authtoken, // string - (Basic Authentication Token)
        'mode' => 'test' // test or production
      ]);

    } catch(\Pils36\Rexpay\Exception\ApiException $e){
      print_r($e->getResponseObject());
      die($e->getMessage());
    }

    // store transaction reference so we can query in case user never comes back
    // perhaps due to network issue
    saveLastTransactionId($tranx);
```

When the user enters their card details, Rexpay will validate and charge the card. It will do all the below:

Redirect back to a callback\_url set when initializing the transaction or on your dashboard. Customers see a Transaction was successful message.

Before you give value to the customer, please make a server-side call to our verification endpoint to confirm the status and properties of the transaction.

### 3. Verify Transaction

[](#3-verify-transaction)

After we redirect to your callback url, please verify the transaction before giving value.

```
    // initiate the Library's Rexpay Object
    $rexpay = new Pils36\Rexpay;
    try
    {
      // verify using the library
      $tranx = $rexpay->transaction->verify([
        'transactionReference'=>$reference, // unique to transactions
        'authToken'=> $authtoken, // string - (Basic Authentication Token)
        'mode' => 'test' // test or production
      ]);
    } catch(\Pils36\Rexpay\Exception\ApiException $e){
      print_r($e->getResponseObject());
      die($e->getMessage());
    }

    ($tranx->responseCode === "00") => "success";
    ($tranx->responseCode === "01") => "failed";
    ($tranx->responseCode === "02") => "pending";

    if ($tranx->responseCode === "00") {
      // transaction was successful... Please check other things like whether you already gave value for this transactions
      // if the email matches the customer who owns the product etc
      // Save your transaction information here
    }
```

Change log
----------

[](#change-log)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Testing
-------

[](#testing)

```
    $ composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) and [CONDUCT](.github/CONDUCT.md) for details. Check our [todo list](TODO.md) for features already intended.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Pils36](https://github.com/Pils36)
- [All Contributors](../../contributors)

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity42

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

Unknown

Total

1

Last Release

874d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/80e2fcdd265aa0d1bbf53745bfe8ef1b1146562efd2541bb835e8fe0e5bdbc7f?d=identicon)[Pils36](/maintainers/Pils36)

---

Top Contributors

[![Pils36](https://avatars.githubusercontent.com/u/35952059?v=4)](https://github.com/Pils36 "Pils36 (30 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/pils36-rexpay/health.svg)

```
[![Health](https://phpackages.com/badges/pils36-rexpay/health.svg)](https://phpackages.com/packages/pils36-rexpay)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k13](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

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