remotemerge / esewa-php-sdk
eSewa payment gateway integration in PHP.
Requires
- php: >=8.1
- ext-curl: *
- ext-simplexml: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.62.0
- phpunit/phpunit: ^10.5.30
- rector/rector: ^1.2.4
README
The eSewa SDK for PHP is developed and maintained by remotemerge and the community, simplifying the integration of the eSewa payment service into PHP code. For more details, refer to the eSewa Documentation website.
Getting Started
- Sign up for eSewa – Before you begin, you need to sign up and retrieve your credentials from eSewa.
- Minimum requirements – To run the SDK, your system will need to meet the minimum requirements, including having PHP >= 8.1. 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 remotemerge/esewa-php-sdk
package.
composer require remotemerge/esewa-php-sdk
Getting Help
Bugs and feature requests are tracked using GitHub issues, and prioritization is given to addressing them as soon as possible.
- For account and payment related concerns, please contact eSewa directly by calling or emailing them.
- If a bug is identified, please open an issue on GitHub.
- For assistance with integrating eSewa into your application, feel free to reach out to the support team.
Quick Examples
Create an eSewa client
// Init composer autoloader. require dirname(__DIR__) . '/vendor/autoload.php'; use RemoteMerge\Esewa\Client; // Set success and failure callback URLs. $successUrl = 'https://example.com/success.php'; $failureUrl = 'https://example.com/failed.php'; // Initialize eSewa client for development. $esewa = new Client([ 'merchant_code' => 'EPAYTEST', 'success_url' => $successUrl, 'failure_url' => $failureUrl, ]); // Initialize eSewa client for production. $esewa = new Client([ 'merchant_code' => 'b4e...e8c753...2c6e8b', 'success_url' => $successUrl, 'failure_url' => $failureUrl, ]);
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->payment('P101W201', 100, 15, 80, 50);
The method accepts five parameters.
payment(string $pid, float $amt, float $txAmt = 0, float $psc = 0, float $pdc = 0)
pid
A unique ID of product or item or ticket etc.amt
Amount of product or item or ticket etctxAmt
Tax amount on product or item or ticket etc. Pass0
if Tax/VAT is not applicable.psc
The service charge (if applicable); default to0
.pdc
The delivery charge (if applicable); default to0
.
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->verifyPayment('R101', 'P101W201', 245); if ($status) { // Verification successful. }
The method accepts three parameters.
verifyPayment(string $refId, string $oid, float $tAmt)
refId
A unique payment reference code generated by eSewa.oid
Product ID used on payment request.tAmt
Total payment amount (including Tax/VAT and other charges.)
Note: You can extract refId
from the success response url parameter.
Contribution
The contributions of the Open Source community are highly valued and appreciated. To ensure a smooth and efficient process, please adhere to the following guidelines when submitting code:
- Ensure that the code adheres to PER Coding Style 2.0 standards.
- All submitted code must pass relevant tests.
- Proper documentation and clean code practices are essential.
- Please make pull requests to the
main
branch.
Thank you for your support and contributions. Looking forward to reviewing your code.