Flutter支付插件flutter_upi_pay的使用
Flutter支付插件flutter_upi_pay的使用
支持平台
- Android
- iOS
开始使用
该插件可以在Pub上找到:https://pub.dev/packages/flutter_upi_pay。
在你的应用pubspec.yaml
文件中添加依赖:
dependencies:
flutter_upi_pay: 0.0.2
使用说明
导入包
import 'package:flutter_upi_pay/flutter_upi_pay.dart';
创建FlutterPayment实例
FlutterPayment flutterPayment = FlutterPayment();
设置选项
flutterPayment.launchUpi(
upi_id: "test@oksbi", // UPI ID
name: "tester", // 付款人姓名
amount: "100", // 付款金额
message: "test", // 付款备注
currency: "INR"); // 货币类型
预览图
示例代码
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_upi_pay/flutter_upi_pay.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是您的应用的根。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter pay',
theme: ThemeData(
// 这是您的应用程序的主题。
//
// 尝试这样做:运行您的应用“flutter run”。您会看到
// 应用程序有一个蓝色工具栏。然后,不退出应用,
// 将颜色方案中的seedColor改为Colors.green
// 并触发热重载(保存更改或按IDE中的“热重载”按钮,或者如果您使用
// 命令行启动应用,则按“r”)。
//
// 注意计数器并没有重置回零;应用程序的状态在重载时不会丢失。
// 若要重置状态,请使用热重启。
//
// 这对代码也适用,而不仅仅是值:大多数代码更改可以通过
// 热重载来测试。
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blueAccent),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter UPI Pay'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// 这个小部件是您的应用的主页。它是有状态的,意味着
// 它有一个状态对象(定义如下),包含影响其外观的字段。
//
// 这个类是状态的配置。它保存了由父级(在这种情况下为App小部件)提供的值(在这种情况下为标题)
// 并用于State的构建方法。小部件子类中的字段总是标记为“final”。
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
FlutterPayment flutterPayment = FlutterPayment();
[@override](/user/override)
Widget build(BuildContext context) {
// 此方法每次调用setState时都会重新运行,例如上面的_incrementCounter方法。
//
// Flutter框架已被优化为使重新构建方法快速运行,
// 因此您可以只需重新构建任何需要更新的内容,而不是逐个更改小部件实例。
return Scaffold(
appBar: AppBar(
// 尝试这样做:将此处的颜色更改为特定颜色(如Colors.amber?)
// 并触发热重载以查看AppBar颜色变化,而其他颜色保持不变。
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// 这里我们从MyHomePage对象中获取值,该对象由App.build方法创建,
// 并将其用于设置appbar标题。
title: Text(widget.title),
),
body: const Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Initiate UPI payment from Flutter',
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
// 启动UPI支付
flutterPayment.launchUpi(
upiId: "test@oksbi",
name: "tester",
amount: "100",
message: "test",
currency: "INR",
);
},
tooltip: '',
child: const Icon(Icons.monetization_on_outlined),
),
);
}
}
更多关于Flutter支付插件flutter_upi_pay的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter支付插件flutter_upi_pay的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何使用Flutter支付插件flutter_upi_pay
的示例代码案例。这个插件允许你通过Unified Payments Interface (UPI) 进行支付。
首先,确保你已经在pubspec.yaml
文件中添加了flutter_upi_pay
依赖:
dependencies:
flutter:
sdk: flutter
flutter_upi_pay: ^latest_version # 请替换为最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,你可以在你的Flutter应用中使用flutter_upi_pay
插件。下面是一个简单的示例,展示如何启动UPI支付流程:
import 'package:flutter/material.dart';
import 'package:flutter_upi_pay/flutter_upi_pay.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter UPI Pay Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void _initiateUpiPayment() async {
try {
String receiverUpiId = 'test@upi'; // 替换为实际的收款人UPI ID
String amount = '10.00'; // 替换为实际的支付金额
String transactionNote = 'Payment for goods'; // 交易备注
String transactionRef = DateTime.now().toString(); // 交易引用ID,唯一标识一次交易
String appName = 'MyFlutterApp'; // 你的应用名称
UpiResponse response = await FlutterUpiPay.initiateTransaction(
receiverUpiId: receiverUpiId,
amount: amount,
transactionNote: transactionNote,
transactionRef: transactionRef,
appName: appName,
);
if (response.status == "SUCCESS") {
print("Payment successful: ${response.responseCode}, ${response.responseMessage}");
} else if (response.status == "FAILURE") {
print("Payment failed: ${response.responseCode}, ${response.responseMessage}");
} else {
print("Payment pending or unknown status: ${response.responseCode}, ${response.responseMessage}");
}
} catch (e) {
print("Error initiating UPI payment: $e");
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter UPI Pay Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _initiateUpiPayment,
child: Text('Initiate UPI Payment'),
),
),
);
}
}
在这个示例中:
- 依赖添加:在
pubspec.yaml
文件中添加了flutter_upi_pay
依赖。 - UPI支付发起:在
_initiateUpiPayment
方法中,使用FlutterUpiPay.initiateTransaction
方法来启动UPI支付流程。你需要提供收款人的UPI ID、支付金额、交易备注、交易引用ID和应用名称等信息。 - 响应处理:根据
UpiResponse
对象的状态码和消息来处理支付结果。
请确保在实际应用中替换示例中的收款人UPI ID、支付金额等信息,并根据需要调整UI和逻辑。
这个示例代码提供了一个基础框架,你可以根据实际需求进行扩展和修改。