PHPackages                             dilab/ipay - 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. dilab/ipay

ActiveCakephp-plugin[Payment Processing](/categories/payments)

dilab/ipay
==========

iPay88 Plugin for CakePHP

1.0.0(10y ago)023[2 issues](https://github.com/dilab/ipay/issues)MITPHP

Since Oct 9Pushed 10y ago1 watchersCompare

[ Source](https://github.com/dilab/ipay)[ Packagist](https://packagist.org/packages/dilab/ipay)[ RSS](/packages/dilab-ipay/feed)WikiDiscussions master Synced 3d ago

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

iPay88 Plugin for CakePHP
=========================

[](#ipay88-plugin-for-cakephp)

iPay88 is a leading regional Payment Gateway Provider in South East Asia.

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

[](#requirements)

- CakePHP version: 2.5.x

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

[](#installation)

### Using Git

[](#using-git)

`git clone git@github.com:dilab/ipay.git Ipay`

### Using Composer

[](#using-composer)

`composer require dilab/ipay`

Usage
-----

[](#usage)

### Create Plugin Database

[](#create-plugin-database)

```
cake schema create --plugin ipay

```

### Supply iPay88 Merchant Info

[](#supply-ipay88-merchant-info)

- Copy ipay\_config.php to App/Config folder `cp app/Plugin/Ipay/Config/ipay_config_sample.php app/Config/ipay_config.php `
- Open app/Config/ipay\_config.php and supply correct information for both **merchantKey** and **merchantCode**. Leave rest of info intact.

### Create Event Listener

[](#create-event-listener)

Ipay.IpayResponse model fires two events below, which you can use to add your business logic.

- **Model.IpayResponse.afterValidResponse**: This event is fired when a valid response is sent from iPay88. It checks **status** and **signature** fields.
- **Model.IpayResponse.afterSuccessResponse**: This event fires only if event above also happens. It re-query iPay88 server to check if it is valid payment.

**Model.IpayResponse.afterSuccessResponse** should be used to identify a successful payment.

Ipay Plugin comes with backend post by default, it will use this event listener to process

#### Sample

[](#sample)

In file **app/Controller/AppController.php**:

```
public function beforeFilter()
{
  $this->loadModel('Ipay.IpayResponse');
  $callback = array($this, 'ipaySuccessResponseCallBack');
  $this->IpayResponse->getEventManager()->attach(
          $callback,
          'Model.IpayResponse.afterSuccessResponse',
          array('passParams' => true)
  );
}

public function ipaySuccessResponseCallBack($id)
{
  // Process your order with your business logic
  // Use $id to get the order information from ipay_repsonses table
}

```

### Create iPay88 Form using Helper

[](#create-ipay88-form-using-helper)

You can use iPay88 to create the a iPay88 payment form, you should always the helper, because it takes care of signature creation.

#### Sample

[](#sample-1)

```
$data = array(
    'RefNo' => 123,
    'Amount' => 100.00,
    'Currency' => 'USD',
    'ProdDesc' => 'Product',
    'UserName' => 'test user',
    'UserEmail' => 'test@gmail.com',
    'UserContact' => '123',
    'ResponseURL' => 'http://domain/controller/response_handler',
);

echo $this->Ipay->button($data);

```

### Process Response using Component

[](#process-response-using-component)

In your response action, simply call `Ipay.processPaymentResponse();`, it will take care of all the backend process.

#### Sample

[](#sample-2)

```
public response_handler()
{
    // Your other code

    $this->Ipay->processPaymentResponse();

}

```

Testing
-------

[](#testing)

### Unit Test

[](#unit-test)

`cake test Ipay all`

### Integration Test

[](#integration-test)

`cake test Ipay Integration/IpayRequeryIntegration`

(Do not run this test as part of your Unit Test as it will send HTTP request to iPay88 server.)

Support
-------

[](#support)

Please use Github Issues to report bugs/issues.

License
-------

[](#license)

Licensed under The MIT License Redistributions of files must retain the above copyright notice.

Author
------

[](#author)

Xu Ding

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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

3922d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/465cbccb0942f3dfafdb393d46757720fe99af53ac04c6ae1d82b97c2f0e2b18?d=identicon)[xuding](/maintainers/xuding)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/dilab-ipay/health.svg)

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

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[october/rain

October Rain Library

1601.7M83](/packages/october-rain)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45444.2k1](/packages/pressbooks-pressbooks)[mediawiki/maps

Adds various mapping features to MediaWiki

84152.3k3](/packages/mediawiki-maps)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

19251.4k3](/packages/civicrm-civicrm-drupal-8)[altis/core

Core module for Altis

19228.0k3](/packages/altis-core)

PHPackages © 2026

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