Flutter支付集成插件flutter_theoaks_paystack的使用
💳 Paystack Plugin for Flutter
一个用于通过Paystack支付网关进行支付的Flutter插件。完全支持Android和iOS。
🚀 安装
要使用此插件,只需在pubspec.yaml
文件中添加依赖项flutter_paystack
。
dependencies:
flutter_paystack: ^版本号
然后在你的widget的initState
中初始化插件:
import 'package:flutter_paystack/flutter_paystack.dart';
class _PaymentPageState extends State<PaymentPage> {
var publicKey = '[YOUR_PAYSTACK_PUBLIC_KEY]'; // 替换为您的Paystack公钥
final plugin = PaystackPlugin();
@override
void initState() {
super.initState();
plugin.initialize(publicKey: publicKey); // 初始化插件
}
}
无需其他配置——插件即可直接使用。
💲 进行支付
该插件提供了两种方式进行支付:
- 结账(推荐)
- 手动充值信用卡
1. 🌟 结账(推荐)
这是最简单的方式,插件会处理所有支付相关的流程(除了交易初始化和验证,这些应由后端完成)。
创建一个带有金额、邮箱和访问码或引用的Charge
对象。如果从后端初始化了交易,则传递accessCode
;否则传递reference
。
Charge charge = Charge()
..amount = 10000 // 金额(单位为分)
..reference = _getReference() // 生成唯一参考ID
// 或者 ..accessCode = _getAccessCodeFrmInitialization()
..email = 'customer@email.com'; // 客户邮箱
CheckoutResponse response = await plugin.checkout(
context, // 当前上下文
method: CheckoutMethod.card, // 默认为CheckoutMethod.selectable
charge: charge,
);
// 检查支付状态
if (response.status == true) {
print("支付成功!");
} else {
print("支付失败:${response.message}");
}
注意:如果方法为CheckoutMethod.bank
或CheckoutMethod.selectable
,则需要提供accessCode
。
插件的checkout()
方法返回支付状态和详细信息,建议在支付完成后,在后端验证交易。
2. ⭐ 手动充值信用卡
你可以在本地初始化支付,也可以通过后端初始化支付。
A. 通过后端初始化(推荐)
- 在后端发起HTTP POST请求到Paystack API以初始化交易。
- 如果一切正常,后端返回包含
access_code
的响应。 - 使用
access_code
和信用卡详细信息创建Charge
对象,并将其传递给plugin.chargeCard()
函数:
PaymentCard _getCardFromUI() {
// 使用必要的参数创建信用卡对象
return PaymentCard(
number: cardNumber, // 卡号
cvc: cvv, // CVV码
expiryMonth: expiryMonth, // 有效期月份
expiryYear: expiryYear, // 有效期年份
);
}
_chargeCard(String accessCode) async {
var charge = Charge()
..accessCode = accessCode // 支付初始化返回的accessCode
..card = _getCardFromUI(); // 用户输入的信用卡信息
final response = await plugin.chargeCard(context, charge: charge);
// 检查支付结果
if (response.status == true) {
print("支付成功!");
} else {
print("支付失败:${response.message}");
}
}
B. 本地初始化
直接将支付详情发送到plugin.chargeCard
:
Charge charge = Charge();
charge.card = _getCardFromUI(); // 用户输入的信用卡信息
charge
..amount = 2000 // 金额(单位为分)
..email = 'user@email.com' // 客户邮箱
..reference = _getReference() // 生成唯一参考ID
..putCustomField('Charged From', 'Flutter PLUGIN'); // 自定义字段
await plugin.chargeCard(context, charge: charge);
更多关于Flutter支付集成插件flutter_theoaks_paystack的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件flutter_theoaks_paystack的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_theoaks_paystack
是一个用于在 Flutter 应用中集成 Paystack 支付的插件。Paystack 是一个流行的支付网关,广泛用于非洲地区的在线支付。通过这个插件,你可以轻松地在你的 Flutter 应用中集成 Paystack 支付功能。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 flutter_theoaks_paystack
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_theoaks_paystack: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化 Paystack
在你的 Dart 代码中,首先需要初始化 Paystack。通常你可以在 main.dart
或某个初始化函数中进行初始化。
import 'package:flutter_theoaks_paystack/flutter_theoaks_paystack.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Paystack
PaystackPlugin.initialize(
publicKey: 'your_public_key', // 你的 Paystack 公钥
);
runApp(MyApp());
}
3. 发起支付
接下来,你可以在需要支付的地方调用 Paystack 的支付方法。通常,你需要提供用户的电子邮件、支付金额、以及一个回调函数来处理支付结果。
import 'package:flutter/material.dart';
import 'package:flutter_theoaks_paystack/flutter_theoaks_paystack.dart';
class PaymentScreen extends StatelessWidget {
final PaystackPlugin _paystackPlugin = PaystackPlugin();
Future<void> _makePayment() async {
try {
final Charge charge = Charge()
..amount = 10000 // 金额(以最小单位表示,例如 10000 表示 100.00 NGN)
..email = 'user@example.com' // 用户的电子邮件
..reference = _getReference(); // 生成唯一的交易参考号
final CheckoutResponse response = await _paystackPlugin.checkout(
context,
method: CheckoutMethod.card, // 支付方式(卡支付)
charge: charge,
);
if (response.status == true) {
// 支付成功
print('Payment successful: ${response.reference}');
} else {
// 支付失败
print('Payment failed: ${response.message}');
}
} catch (e) {
print('Error: $e');
}
}
String _getReference() {
// 生成唯一的交易参考号
return 'ref_${DateTime.now().millisecondsSinceEpoch}';
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Pay with Paystack'),
),
body: Center(
child: ElevatedButton(
onPressed: _makePayment,
child: Text('Pay Now'),
),
),
);
}
}