cixware/esewa-php-sdk

eSewa payment gateway integration in PHP.

2.6.0 2023-12-25 16:06 UTC

This package is auto-updated.

Last update: 2024-03-25 16:49:00 UTC


README

@cixware on Twitter @cixware on Facebook PHP Version Build Downloads License

We at Cixware develop and maintain the eSewa SDK for PHP, making it easy for developers to integrate the eSewa payment service into their PHP code. Find more details on the eSewa Documentation website.

Getting Started

  1. Sign up for eSewa – Before you begin, you need to sign up and retrieve your credentials from eSewa.
  2. Minimum requirements – To run the SDK, your system will need to meet the minimum requirements, including having PHP >= 7.4. We highly recommend having it compiled with the cURL extension and cURL compiled with a TLS backend ( e.g., NSS or OpenSSL).

Installation

Install the SDK – Using Composer is the recommended way to install the eSewa SDK for PHP. The SDK is available via Packagist under the cixware/esewa-php-sdk package.

composer require cixware/esewa-php-sdk

Getting Help

We track bugs and feature requests using GitHub issues and prioritize addressing them ASAP.

  • For account and payment related concerns, please reach eSewa by calling or emailing them.
  • If you believe you have found a bug, please open an issue on GitHub.
  • For assistance with integrating eSewa into your application, don't hesitate to contact Cixware.

Quick Examples

Create an eSewa client

// Init composer autoloader.
require 'vendor/autoload.php';

use Cixware\Esewa\Client;use Cixware\Esewa\Config;

// Set success and failure callback URLs.
$successUrl = 'https://example.com/success.php';
$failureUrl = 'https://example.com/failed.php';

// Config for development.
$config = new Config($successUrl, $failureUrl);

// Config for production.
$config = new Config($successUrl, $failureUrl, 'b4e...e8c753...2c6e8b');

// Initialize eSewa client.
$esewa = new Client($config);

Here b4e...e8c753...2c6e8b is merchant code retrieved from eSewa.

Make Payment

When the user initiates the payment process, the package redirects the user to an eSewa site for payment processing. The eSewa system will redirect the user to your specified success URL if the payment is successful and to the failure URL if the payment fails.

$esewa->process('P101W201', 100, 15, 80, 50);

The method accepts five parameters.

process(string $pid, float $amt, float $txAmt = 0, float $psc = 0, float $pdc = 0)
  1. pid A unique ID of product or item or ticket etc.
  2. amt Amount of product or item or ticket etc
  3. txAmt Tax amount on product or item or ticket etc. Pass 0 if Tax/VAT is not applicable.
  4. psc The service charge (if applicable); default to 0.
  5. pdc The delivery charge (if applicable); default to 0.

OTP for Payment

When using the eSewa payment gateway in production mode, an OTP (One-Time Password) code is sent to the customer's mobile number to verify the transaction. In development mode, the OTP code is a fixed six-digit number, 123456, for testing purposes.

Verify Payment

The verification process identifies potentially fraudulent transactions and checks them against data such as transaction amount and other parameters.

$status = $esewa->verify('R101', 'P101W201', 245);
if ($status) {
    // Verification successful.
}

The method accepts three parameters.

verify(string $refId, string $oid, float $tAmt)
  1. refId A unique payment reference code generated by eSewa.
  2. oid Product ID used on payment request.
  3. tAmt Total payment amount (including Tax/VAT and other charges.)

Note: You can extract refId from the success response url parameter.

Contribution

We highly value and appreciate the contributions of the Open Source community. To ensure a smooth and efficient process, please stick to the following guidelines when submitting code:

  • Ensure that your code adheres to PSR standards.
  • All submitted code must pass relevant tests.
  • Proper documentation and clean code practices are a must.
  • Please make pull requests to the main branch.

Thank you for your support and contributions. We look forward to reviewing your code.