Flutter支付集成插件flutter_paystack_mo的使用

Flutter支付集成插件flutter_paystack_mo的使用

📚 目录


🚀 安装

要使用此插件,在您的pubspec.yaml文件中添加flutter_paystack_mo作为依赖项。

dependencies:
  flutter_paystack_mo: ^版本号

然后在您的组件中初始化插件,最好是在initState方法中进行初始化。

import 'package:flutter_paystack_mo/flutter_paystack.dart';

class _PaymentPageState extends State<PaymentPage> {
  var publicKey = '[YOUR_PAYSTACK_PUBLIC_KEY]';
  final plugin = PaystackPlugin();

  @override
  void initState() {
    plugin.initialize(publicKey: publicKey);
  }
}

无需其他配置,插件即可直接使用。


💲 制作支付

该插件提供了两种方式来制作支付。

  1. 结账:这是最简单的方式;插件会处理所有涉及的支付过程(除了交易初始化和验证,这些应从您的后端进行)。
  2. 刷卡:这是一种更长的方法;您需要处理所有回调和UI状态。

1. 🌟 结账(推荐)

您可以通过一个金额、邮箱和访问码或引用来初始化一个Charge对象。如果已经从后端初始化了交易,请传递accessCode,否则传递reference

Charge charge = Charge()
      ..amount = 10000
      ..reference = _getReference()
      // 或者 ..accessCode = _getAccessCodeFrmInitialization()
      ..email = 'customer@email.com';
CheckoutResponse response = await plugin.checkout(
  context,
  method: CheckoutMethod.card, // 默认为CheckoutMethod.selectable
  charge: charge,
);

请注意,如果方法是CheckoutMethod.bankCheckoutMethod.selectable,则需要accessCode

plugin.checkout()返回一个包含支付状态和详细信息的CheckoutResponse实例。

建议在plugin.checkout()返回后,在您的后端验证支付。

2. ⭐ 刷卡

您可以选择在本地初始化支付或者通过后端初始化支付。

A. 通过后端初始化(推荐)
  1. a. 首先,通过HTTP POST请求到您的后端上的Paystack进行初始化。
  2. b. 如果一切顺利,初始化请求将返回一个带有access_code的响应。然后创建一个带有访问码和卡片详情的Charge对象,并将其传递给plugin.chargeCard()函数进行支付:
PaymentCard _getCardFromUI() {
  // 使用必须的参数。
  return PaymentCard(
    number: cardNumber,
    cvc: cvv,
    expiryMonth: expiryMonth,
    expiryYear: expiryYear,
  );
}

_chargeCard(String accessCode) async {
  var charge = Charge()
    ..accessCode = accessCode
    ..card = _getCardFromUI();

  final response = await plugin.chargeCard(context, charge: charge);
  // 使用响应
}

如果response.status为true,则表示交易成功。请参阅CheckoutResponse的文档以获取更多信息。

B. 本地初始化

只需将支付详情发送给plugin.chargeCard:

Charge charge = Charge();
charge.card = _getCardFromUI();
charge
  ..amount = 2000
  ..email = 'user@email.com'
  ..reference = _getReference()
  ..putCustomField('Charged From', 'Flutter PLUGIN');
_chargeCard();

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

1 回复

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


flutter_paystack_mo 是一个用于在 Flutter 应用中集成 Paystack 支付功能的插件。Paystack 是一个流行的支付网关,支持在非洲地区的在线支付。通过 flutter_paystack_mo,你可以轻松地在你的 Flutter 应用中接受信用卡和其他支付方式的付款。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_paystack_mo: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

2. 初始化 Paystack

在你的 Dart 文件中,导入 flutter_paystack_mo 并进行初始化:

import 'package:flutter_paystack_mo/flutter_paystack_mo.dart';

final PaystackPlugin paystackPlugin = PaystackPlugin();

void initializePaystack() {
  paystackPlugin.initialize(
    publicKey: 'your_public_key',  // 你的 Paystack 公钥
  );
}

确保在应用启动时调用 initializePaystack() 方法。

3. 创建支付请求

接下来,你可以创建一个支付请求。通常,你需要从你的后端服务器获取一个 transaction reference,然后使用它来发起支付。

void makePayment() async {
  // 从你的后端服务器获取 transaction reference
  String transactionReference = await getTransactionReferenceFromBackend();

  Charge charge = Charge()
    ..amount = 10000  // 金额,单位为分(例如 10000 = 100.00 美元)
    ..email = 'customer@example.com'  // 客户的电子邮件
    ..reference = transactionReference;  // 交易参考号

  CheckoutResponse response = await paystackPlugin.checkout(
    context,  // 当前上下文
    method: CheckoutMethod.card,  // 支付方式,可以选择 card、bank 等
    charge: charge,
    fullscreen: false,  // 是否全屏显示支付页面
  );

  if (response.status == true) {
    // 支付成功
    print('Payment successful: ${response.reference}');
  } else {
    // 支付失败
    print('Payment failed: ${response.message}');
  }
}
回到顶部