eps_pg_flutter 0.0.1 copy "eps_pg_flutter: ^0.0.1" to clipboard
eps_pg_flutter: ^0.0.1 copied to clipboard

A Flutter package to integrate **EPS Bangladesh Payment Gateway** into Flutter apps. Supports token generation, checkout via WebView, and payment callback handling.

EPS Payment Gateway Flutter #

A Flutter plugin to integrate EPS (Electronic Payment Systems) Bangladesh Payment Gateway into your Flutter application. This package simplifies the process of generating payment tokens, verifying transactions, and handling payment callbacks via a built-in WebView.

Features #

  • ๐Ÿ” Secure Token Generation: Easily generate tokens for EPS transactions.
  • ๐Ÿ’ณ Seamless Checkout: Integrated WebView for a smooth payment experience.
  • โœ… Transaction Verification: Verify payment status with a single method call.
  • ๐Ÿ”„ Callback Handling: Automatically handles Success, Failure, and Cancelled states.
  • ๐Ÿงช Sandbox Support: Switch between Test (Sandbox) and Live environments effortlessly.

Installation #

Add eps_pg_flutter to your pubspec.yaml file:

dependencies:
  eps_pg_flutter: ^0.0.1

Or install it via terminal:

flutter pub add eps_pg_flutter

Getting Started #

1. Initialize the Settings #

Create an instance of EpsPGInitialization with your merchant credentials. You can get these credentials from the EPS Merchant Panel.

final epsInit = EpsPGInitialization(
  userName: 'YOUR_USERNAME',
  password: 'YOUR_PASSWORD',
  hashKey: 'YOUR_HASH_KEY',
  merchantId: 'YOUR_MERCHANT_ID',
  storeId: 'YOUR_STORE_ID',
  environment: EpsPGEnvironment.testbox, // Use live for production
);

2. Create the Controller #

Pass the initialization object to the EpsPGController.

final controller = EpsPGController(initializer: epsInit);

3. Initialize Payment #

Create a EpsPGPaymentRequest object with customer and order details, then call initializePayment.

final paymentRequest = EpsPGPaymentRequest(
  merchantId: epsInit.merchantId,
  storeId: epsInit.storeId,
  customerOrderId: 'ORDER_123456',
  merchantTransactionId: 'TRX_123456',
  totalAmount: 100.0,
  successUrl: 'https://example.com/success',
  failUrl: 'https://example.com/fail',
  cancelUrl: 'https://example.com/cancel',
  customerName: 'John Doe',
  customerEmail: 'john@example.com',
  customerAddress: '123 Dhaka',
  customerCity: 'Dhaka',
  customerPostcode: '1212',
  customerCountry: 'Bangladesh',
  customerPhone: '01700000000',
  productName: 'T-Shirt',
);

try {
  final response = await controller.initializePayment(paymentRequest);
  
  if (response.status == 'Successful' && response.paymentUrl != null) {
    // Navigate to WebView
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => EpsPGWebView(
          url: response.paymentUrl!,
          onPaymentFinished: (status) {
            print('Payment Status: $status'); // SUCCESS, FAILED, CANCELLED
          },
        ),
      ),
    );
  } else {
    print('Error: ${response.message}');
  }
} catch (e) {
  print('Initialization Failed: $e');
}

4. Verify Transaction #

After the payment is completed, you should verify the transaction status using the merchantTransactionId.

final status = await controller.verifyTransaction('TRX_123456');

if (status.status == 'Successful') {
  print('Payment Verified: ${status.amount} BDT');
} else {
  print('Payment Failed: ${status.message}');
}

Models for Type Safety #

The package uses strongly typed models for responses:

  • EpsPaymentResponse: Contains status, sessionToken, paymentUrl, and message.
  • EpsStatusResponse: Contains transactionStatus, merchantTransactionId, bankTransactionId, amount, etc.

Contributing #

Contributions are welcome! If you find a bug or want to add a feature, please open an issue or submit a pull request.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

0
likes
150
points
240
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter package to integrate **EPS Bangladesh Payment Gateway** into Flutter apps. Supports token generation, checkout via WebView, and payment callback handling.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

crypto, flutter, http, webview_flutter

More

Packages that depend on eps_pg_flutter