Flutter移动支付插件esewa_khalti_payment_pkg的使用
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
更多关于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'),
),
],
),
),
);
}
}