Flutter移动支付插件esewa_khalti_payment_pkg的使用

发布于 1周前 作者 ionicwang 来自 Flutter

Flutter移动支付插件esewa_khalti_payment_pkg的使用

本文将介绍如何在Flutter项目中使用esewa_khalti_payment_pkg插件来实现移动支付功能。以下是完整的步骤和示例代码。


Features

TODO: 待补充


Getting started

在开始之前,请确保您的Flutter环境已正确配置,并且已经添加了esewa_khalti_payment_pkg插件到您的项目中。您可以通过以下命令添加该插件:

flutter pub add esewa_khalti_payment_pkg

同时,确保在pubspec.yaml文件中添加依赖项后运行以下命令以更新依赖:

flutter pub get

Usage

步骤 1: 初始化插件

首先,您需要初始化插件并设置必要的参数,例如交易金额、商品名称等。

import 'package:flutter/material.dart';
import 'package:esewa_khalti_payment_pkg/esewa_khalti_payment_pkg.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaymentPage(),
    );
  }
}

步骤 2: 创建支付页面

接下来,创建一个支付页面,在该页面中调用插件的支付功能。

class PaymentPage extends StatefulWidget {
  [@override](/user/override)
  _PaymentPageState createState() => _PaymentPageState();
}

class _PaymentPageState extends State<PaymentPage> {
  final EsEWaKhaltiPaymentPlugin _paymentPlugin = EsEWaKhaltiPaymentPlugin();

  void _startPayment() async {
    try {
      // 设置支付参数
      final paymentRequest = EsEWaPaymentRequest(
        amount: 100.0, // 支付金额
        productIdentity: "ProductID123", // 商品ID
        productName: "Sample Product", // 商品名称
        customerEmail: "customer@example.com", // 客户邮箱
        customerName: "John Doe", // 客户姓名
      );

      // 启动支付流程
      final paymentResult = await _paymentPlugin.startPayment(paymentRequest);

      // 处理支付结果
      if (paymentResult.success) {
        ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('支付成功!')));
      } else {
        ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('支付失败!')));
      }
    } catch (e) {
      print("Error during payment: $e");
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('支付过程中出现错误!')));
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("移动支付示例")),
      body: Center(
        child: ElevatedButton(
          onPressed: _startPayment,
          child: Text("开始支付"),
        ),
      ),
    );
  }
}

更多关于Flutter移动支付插件esewa_khalti_payment_pkg的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter移动支付插件esewa_khalti_payment_pkg的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


esewa_khalti_payment_pkg 是一个用于在 Flutter 应用中集成 eSewa 和 Khalti 支付功能的插件。它允许开发者轻松地在应用中添加这两种支付方式,从而为用户提供便捷的支付体验。

1. 安装插件

首先,你需要在 pubspec.yaml 文件中添加 esewa_khalti_payment_pkg 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  esewa_khalti_payment_pkg: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

2. 配置 eSewa 和 Khalti

在使用插件之前,你需要配置 eSewa 和 Khalti 的相关信息。

eSewa 配置

  • Merchant ID: 你需要在 eSewa 注册并获取 Merchant ID。
  • Merchant Secret Key: 同样,你需要在 eSewa 获取 Merchant Secret Key。

Khalti 配置

  • Public Key: 你需要在 Khalti 注册并获取 Public Key。

3. 使用插件进行支付

以下是一个简单的示例,展示如何使用 esewa_khalti_payment_pkg 插件进行支付。

import 'package:flutter/material.dart';
import 'package:esewa_khalti_payment_pkg/esewa_khalti_payment_pkg.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaymentScreen(),
    );
  }
}

class PaymentScreen extends StatelessWidget {
  final EsewaKhaltiPayment _payment = EsewaKhaltiPayment();

  void _payWithEsewa() async {
    try {
      final response = await _payment.payWithEsewa(
        merchantId: 'your_merchant_id',
        merchantSecret: 'your_merchant_secret',
        amount: '100', // Amount in NPR
        productName: 'Test Product',
        productId: '123',
        callbackUrl: 'https://your-callback-url.com',
      );

      if (response['status'] == 'success') {
        print('Payment Successful: ${response['message']}');
      } else {
        print('Payment Failed: ${response['message']}');
      }
    } catch (e) {
      print('Error: $e');
    }
  }

  void _payWithKhalti() async {
    try {
      final response = await _payment.payWithKhalti(
        publicKey: 'your_public_key',
        amount: '100', // Amount in NPR
        productName: 'Test Product',
        productId: '123',
      );

      if (response['status'] == 'success') {
        print('Payment Successful: ${response['message']}');
      } else {
        print('Payment Failed: ${response['message']}');
      }
    } catch (e) {
      print('Error: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Payment Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _payWithEsewa,
              child: Text('Pay with eSewa'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _payWithKhalti,
              child: Text('Pay with Khalti'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!