Flutter在线支付插件fast_zarinpal的使用
Flutter在线支付插件fast_zarinpal的使用
快速实现Zarin Pal支付的Flutter插件。

安装
1. 添加Fast Zarinpal到你的项目
flutter pub add fast_zarinpal
2. 在AndroidManifest.xml中添加回调
在AndroidManifest文件中添加以下代码:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="payment"
android:host='yourdomain.com' />
</intent-filter>
提示: 可以输入你自己的地址代替yourdomain.com
。如果这个地址未被其他应用注册,则不会有问题。例如,示例应用的AndroidManifest.xml文件可以查看这里
示例
以下是一个完整的示例代码,展示了如何使用FastZarinPal
插件进行支付。
import 'package:fast_zarinpal/fast_zarinpal.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
final ThemeData themeData = Theme.of(context);
return MaterialApp(
title: 'Fast Zarinpal Test',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: FastZarinPal(
callback: 'yourdomain.com',
merchantID: 'e8188181-8181-8181-8181-818181818181',
paymentTitle: '购买月度订阅',
priceToPay: 125000,
totalPurchaseAmount: 150000,
discount: 25000,
onPaymentFailedWidgets: (amount) => FailedPaymentWidget(themeData: themeData),
onSuccessWidgets: (amount, refID) {
return const SuccessPaymentWidget();
}),
);
}
}
class SuccessPaymentWidget extends StatelessWidget {
const SuccessPaymentWidget({
Key? key,
}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return Column(
children: [
const Icon(
Icons.check,
color: Colors.green,
),
const Text('您的支付成功!'),
const SizedBox(
height: 12,
),
const Divider(),
TextButton(
onPressed: () {}, child: const Text('返回商店页面')),
],
);
}
}
class FailedPaymentWidget extends StatelessWidget {
const FailedPaymentWidget({
Key? key,
required this.themeData,
}) : super(key: key);
final ThemeData themeData;
[@override](/user/override)
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.error,
color: themeData.errorColor,
),
Text(
'您的支付失败了 :(',
style: themeData.textTheme.subtitle1!.copyWith(
color: themeData.errorColor,
),
),
const Divider(),
TextButton(onPressed: () {}, child: const Text('返回并重试')),
],
);
}
}
更多关于Flutter在线支付插件fast_zarinpal的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter在线支付插件fast_zarinpal的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
fast_zarinpal
是一个用于在 Flutter 应用中集成 ZarinPal 在线支付的插件。ZarinPal 是伊朗的一个流行的在线支付网关,允许用户通过银行卡、电子钱包等方式进行支付。下面是使用 fast_zarinpal
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 fast_zarinpal
插件的依赖:
dependencies:
flutter:
sdk: flutter
fast_zarinpal: ^1.0.0 # 请使用最新版本
然后,运行 flutter pub get
来获取依赖。
2. 初始化插件
在你的 Dart 文件中导入 fast_zarinpal
,并进行初始化:
import 'package:fast_zarinpal/fast_zarinpal.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'ZarinPal Payment Example',
home: PaymentPage(),
);
}
}
3. 发起支付请求
在你的支付页面中,使用 FastZarinPal
类来发起支付请求。你需要提供 MerchantID
、Amount
、Description
以及 CallbackURL
。
class PaymentPage extends StatelessWidget {
final FastZarinPal _zarinpal = FastZarinPal();
Future<void> _startPayment() async {
final paymentRequest = PaymentRequest(
merchantID: 'YOUR_MERCHANT_ID', // 替换为你的 Merchant ID
amount: 1000, // 金额(单位:Rial)
description: 'Payment for Product', // 支付描述
callbackURL: 'https://yourwebsite.com/callback', // 回调URL
);
try {
final paymentResponse = await _zarinpal.startPayment(paymentRequest);
if (paymentResponse.status == 100) {
// 支付成功,处理订单
print('Payment Success: ${paymentResponse.authority}');
} else {
// 支付失败,显示错误信息
print('Payment Failed: ${paymentResponse.status}');
}
} catch (e) {
print('Error: $e');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('ZarinPal Payment'),
),
body: Center(
child: ElevatedButton(
onPressed: _startPayment,
child: Text('Pay with ZarinPal'),
),
),
);
}
}