Skip to content

Pesapal driver for the Omnipay PHP payment processing library

License

Notifications You must be signed in to change notification settings

RingierIMU/omnipay-pesapal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Omnipay: Pesapal

Pesapal driver for the Omnipay PHP payment processing library

Maintainability Test Coverage Style CI Scrutinizer Code Quality

Omnipay is a framework agnostic, multi-gateway payment processing library for PHP. This package implements Pesapal support for Omnipay. https://www.pesapal.com/ refer to the API docs here: http://developer.pesapal.com/

Install

Via Composer

$ composer require oneafricamedia/omnipay-pesapal

Basic Usage

Get the pesapal iframe/redirect URL

use Omnipay\Omnipay;


$url = Omnipay::create('Pesapal')
    ->setCredentials(
        'your_key', 
        'your_secret'
    )
    ->setCallbackUrl('https://example.com/callback')
    ->getUrl(
        'test@example.com',
        'my_reference',
        'description',
        100
    );

Check transaction status (from the pesapal ipn)

  1. configure & setup an endpoint to receive the ipn message from pesapal
  2. listen for the message and use getTransactionStatus (please handle the http GET vars accordingly)
use Omnipay\Omnipay;


$status = Omnipay::create('Pesapal')
    ->setCredentials(
        'your_key', 
        'your_secret'
    )
    ->getTransactionStatus(
        $_GET['pesapal_notification_type'],
        $_GET['pesapal_transaction_tracking_id'],
        $_GET['pesapal_merchant_reference']
    );
    
  1. $status will be either PENDING, COMPLETED, FAILED or INVALID. Handle these statuses in your application workflow accordingly.

TODO

  1. Test coverage
  2. add QueryPaymentStatusByMerchantRef support
  3. add QueryPaymentDetails support