搜尋套件、儲存庫與 APP 分類

套件詳情v1.0.1

easebuzz_flutter_sdk

Easebuzz Flutter SDK 簡化了在 Android、iOS 和 Web 平台上安全付款的整合。

近 30 天下載
95
喜歡數
10
Pub 分數
70

安裝套件

flutter pub add easebuzz_flutter_sdk

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

Easebuzz Flutter SDK 可為 Android、iOS 與 Web 平台上的 Flutter 應用實現無縫且安全的支付整合。它透過最少的設定簡化新增支付功能的過程,確保符合安全標準。開發者可利用其一致的 API 來處理交易、管理支付流程,並在單一跨平台解決方案中支援多種支付方式。該 SDK 專為生產環境中的可靠性、效能與易用性而設計。

適用情境

  • 應用內購買
  • 電子商務結帳
  • 訂閱計費
  • 數位服務付款
  • 線上票務預訂
  • 捐贈收集

主要特色

  • 跨平台相容性
  • 安全支付處理
  • 透過 Flutter Pub 的簡單整合
  • 支援多種支付方式
  • 即時交易狀態更新
  • 內建錯誤處理

適合對象

  • 行動電商應用
  • 基於Web的支付門戶
  • 基於訂閱的服務
  • 活動票務平台
  • 非營利捐贈系統

使用建議

  • 需要有效的 Easebuzz 帳戶憑證
  • 限於支援的區域
  • 依賴網路連接
  • 生產環境需要正確設定
  • 可能需要額外的後端驗證

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Easebuzz Flutter SDK

The Easebuzz Flutter SDK provides seamless integration with the Easebuzz payment gateway, enabling merchants to securely collect online payments through various payment modes such as credit cards, debit cards, UPI, and more. This SDK ensures robust encryption and security measures to safeguard customer data. Easebuzz is a fully API-integrated platform, simplifying payment processing for websites and mobile apps.


Features

  • Multiple payment modes: Credit/Debit Cards, UPI, Net Banking, and more.
  • Secure and encrypted transactions.
  • Easy integration with Flutter apps.
  • Fully API-integrated payment gateway.
  • Sandbox environment for testing.

Prerequisites

Before integrating the Easebuzz Flutter SDK, ensure the following:

  1. Merchant Onboarding

  2. Sandbox/Test Integration Credentials

    • Test credentials will be sent to your registered email address. Use these credentials to test payment functionality in a secure sandbox environment.
    • Once testing is complete, replace the test keys with live keys to enable real transactions in the production environment.
  3. Platform-Specific Configuration

    • Web:

      • Add the following two <script> tags in the <head> section of your web/index.html:

        <script src="https://ebz-static.s3.ap-south-1.amazonaws.com/easecheckout/v2.0.0/easebuzz-checkout-v2.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
        

Installation

To integrate the SDK, follow these steps:

  1. Add the Dependency

    Add the following to your pubspec.yaml file:

    dependencies:
      easebuzz_flutter_sdk: ^0.0.1
    

    Fetch the package by running:

    flutter pub get
    
  2. Import the Package

    Import the SDK in your Dart file:

    import 'package:easebuzz_flutter_sdk/easebuzz_flutter_sdk.dart';
    

How to Use

Step 1: Initialize the SDK

Before using any functionality from the SDK, initialize the EasebuzzFlutterSdk instance:

final EasebuzzFlutterSdk _easebuzzFlutterPlugin = EasebuzzFlutterSdk();

Step 2: Create the Payment Model

Start by creating an instance of EasebuzzPaymentModel:

final paymentModel = EasebuzzPaymentModel(
  txnid: "TEST${DateTime.now().millisecondsSinceEpoch}", // Unique transaction ID
  amount: amount, // Payment amount
  productinfo: productName, // Product/service name
  firstname: "John", // Customer's first name
  email: "john@example.com", // Customer's email
  phone: "9999999999", // Customer's phone number
  surl: "https://your-success-url.com", // Success URL
  furl: "https://your-failure-url.com", // Failure URL
  splitPayments: jsonEncode({"your_label": amount}), // Split payments if applicable
  key: key, // Merchant key
);

Note: Replace surl and furl with your actual success and failure handling URLs.

Step 3: Generate Hash

Generate a hash to ensure secure communication:

final hash = await _easebuzzFlutterPlugin.generateHash(
  paymentModel: paymentModel,
  key: key, // Merchant key
  salt: salt, // Merchant salt
);
Step 4: Initiate Payment Link
For Mobile Platforms (Android/iOS):

Use the initiateLink method:

final response = await _easebuzzFlutterPlugin.initiateLink(
  isTestMode: true, // Set to `false` for production
  hash: hash,
  paymentModel: paymentModel,
);
For Web:

The initiateLink method is not supported on web due to CORS issues. Instead, generate the access key on your backend or cloud function by calling the Easebuzz API:

Example for generating access key:

final response = await createAccessTokenForWeb(
  hash: hash,
  requestBody: paymentModel.toJson(),
);

Step 4: Proceed to Payment

After obtaining the access key from initiateLink or your backend, proceed with the payment:

final paymentResponse = await _easebuzzFlutterPlugin.payWithEasebuzz(
  response, // Access key from initiateLink response
  "test", // Payment mode: "test" for sandbox or "production" for live
);

Full Example for Payment Integration

Here’s an example of how to use the Easebuzz SDK in a Flutter app:

Future<void> initiatePayment({
  required String productName,
  required double amount,
  required Function(String) onSuccess,
  required Function(String) onError,
}) async {
  final paymentModel = EasebuzzPaymentModel(
    txnid: "TEST${DateTime.now().millisecondsSinceEpoch}",
    amount: amount,
    productinfo: productName,
    firstname: "John",
    email: "john@example.com",
    phone: "9999999999",
    surl: "https://your-success-url.com",
    furl: "https://your-failure-url.com",
    splitPayments: jsonEncode({"your_label": amount}),
    key: key,
  );

  try {
    // Generate hash
    final hash = await _easebuzzFlutterPlugin.generateHash(
      paymentModel: paymentModel,
      key: EaseBuzzPaymentRepository.key,
      salt: EaseBuzzPaymentRepository.salt,
    );

    if (hash == null) {
      onError("Failed to generate hash.");
      return;
    }

    // Initiate payment link
    final response = kIsWeb
        ? await createAccessTokenForWeb(
            hash: hash, requestBody: paymentModel.toJson()) // 
        : await _easebuzzFlutterPlugin.initiateLink(
            isTestMode: true, // Set to false for production
            hash: hash,
            paymentModel: paymentModel,
          );

    if (response == null) {
      onError("Failed to initiate payment link.");
      return;
    }

    // Proceed to payment
    final paymentResponse =
        await _easebuzzFlutterPlugin.payWithEasebuzz(response, "test");

    if (paymentResponse != null) {
      // Handle successful payment
      onSuccess("Payment successful: $paymentResponse");
    } else {
      // Handle failed payment
      onError("Payment failed: Payment response is null.");
    }
  } on PlatformException catch (e) {
    // Handle platform-specific errors
    onError("Payment failed: ${e.message}");
  } catch (e) {
    // Handle general errors
    onError("Payment failed: ${e.toString()}");
  }
}

/// Call this above method on paybutton

Future<void> _processPayment(BuildContext context, Product product) async {
    await paymentService.initiatePayment(
      productName: product.title,
      amount: product.price,
      onSuccess: (response) {
        _showFeedbackSnackBar(
          context,
          'Payment Successful: $response',
          Colors.green,
        );
      },
      onError: (error) {
        _showFeedbackSnackBar(
          context,
          'Payment Failed: $error',
          Colors.red,
        );
      },
    );
  }


Why Use Backend for Web Integration?

  • Due to CORS restrictions, the Initiate Payment API must be called from your backend or cloud function.
  • Backend integration ensures secure handling of the access key.

Example Screen Recording

Watch the example screen recordings for different platforms to see how to integrate the Easebuzz Flutter SDK:


Resources


所屬分類

依賴

依賴清單 4 項

  • crypto^3.0.6
  • dio^5.7.0
  • plugin_platform_interface^2.1.8
  • web^1.1.0

原始碼儲存庫

使用此套件的專案

暫無相關資料。