Flutter支付集成插件budpay_flutter的使用

Flutter支付集成插件budpay_flutter的使用

Budpay Flutter

Budpay 是一个支付网关,而 budpay_flutter 插件则是利用 Budpay 的 API 以便于在 Flutter 中快速调用 Budpay。它允许 Flutter 开发者快速地调用 Budpay,并支持支付集成、账单支付、快速自动转账等功能,覆盖超过198个国家。Budpay 是快速且安全的。

注意事项

你必须正确并相应地传递参数。请将鼠标悬停在方法名称上以获取详细信息。

特性

该插件可用于支付集成、账单支付、快速自动转账等。你还可以生成虚拟银行账户,通过银行转账向朋友和家人汇款。它还包括标准Checkout支付系统。

开始使用

要开始使用,请在项目目录终端运行以下命令:

flutter pub add budpay_flutter

这将在你的项目中添加 budpay_flutter

使用说明

首先,在 main.dart 文件中初始化 budpay_flutter

void main() async {
  await BudpayPlugin.initialize(
    publicKey: "pk_test_jv8yueg1ycwkowviqw91swbewglvziwde9idpd",
    secretKey: "sk_test_3xd7ybrhumna6sn9kumn3eqljal6lghshb3uiu9",
    signatureKey: ""
  ).then((_) {
    runApp(const MyApp());
  });
}

在上述代码块中,你在主函数中初始化了 budpay_flutter

接受支付

标准Checkout支付

// 初始化 BudpayPlugin 构造器
final budPay = BudpayPlugin();

// 创建引用变量(可选)
String reference = DateTime.now().millisecondsSinceEpoch.toString();

void _standardCheckout() {
  // 使用卡进行标准Checkout支付
  budPay
    .standardCheckout(
      payloads: CheckOut(
        email: _emailController.text, // 用户邮箱
        currency: _currencyController.text.toUpperCase(), // 货币代码(例如 NGN, GHS, USD)
        reference: reference, // 引用码(可选)
        callBackURL: _callbackURLController.text, // 回调URL(可选)
        amount: _amountController.text, // 金额
      ),
      context: context, // 需要 BuildContext 显示弹窗
    )
    .then((response) => print(response)); // 打印响应结果
}

其他用于接受支付的方法包括:

budpay.verifyTransaction();
budpay.getAllTransaction();
budpay.getSingleTransaction();
budpay.payWithBankTransfer();

支付功能

请求支付

void _requestPayment() {
  // 请求支付
  budPay
      .requestPayment(
        payloads: RequestPayment(
          description: "测试支付请求", // 银行转账描述
          recipient: "toluxsys@yahoo.ca,07036218209,sam@bud.africa,08161112404",
          currency: "NGN", // 货币代码(例如 NGN, GHS, USD)
          amount: "200",
        ),
      )
      .then((response) => print(response));
}

其他用于支付功能的方法包括:

budpay.createPaymentLink();
budpay.createCustomer();
budpay.createVirtualAccount();
budpay.getVirtualAccounts();
budpay.createRefund();
budpay.getRefund();
budpay.getRefunds();

汇款

单笔汇款

void _singlePayout() {
  budPay
      .singlePayout(
        payloads: SingleTransfer(
          accountNumber: "0050883605",
          bankCode: "000013",
          amount: "2000",
          narration: "测试转账",
          bankName: "GUARANTY TRUST BANK",
          paymentMode: "momo",
          currency: "NGN",
        ),
      )
      .then((response) => print(response));
}

其他用于汇款的方法包括:

budpay.bankList();
budpay.bankListWithSpecificCurrency();
budpay.accountNameValidation();
budpay.bulkPayout();
budpay.verifyPayout();
budpay.getListAllPayout();
budpay.payoutFee();
budpay.walletBalance();
budpay.walletTransaction();

账单支付

充值话费

void _airtimeTopUp() {
  budPay
      .airtimeTopUp(
        payload: Airtime(
          provider: "MTN",
          number: "07036218209",
          amount: "100",
          reference: reference,
        ),
      )
      .then((response) => print(response));
}

其他用于账单支付的方法包括:

budpay.airtimeProviders();
budpay.getInternetProviders();
budpay.getAllInternetDataPlans();
budpay.internetTopUp();
budpay.getTvs();
budpay.getTvPackages();
budpay.tvValidate();
budpay.payTv();
budpay.getElectricity();
budpay.validateElectricity();
budpay.electricityRecharge();

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

1 回复

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


在Flutter项目中集成支付功能是一个常见的需求,budpay_flutter 是一个用于处理支付的Flutter插件。虽然目前没有广泛使用的 budpay_flutter 插件,但假设你正在使用某个自定义的 budpay_flutter 插件,以下是一个通用的步骤指南,帮助你集成和使用该插件。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  budpay_flutter: ^1.0.0  # 假设版本号为1.0.0,请根据实际情况调整

然后运行 flutter pub get 来获取依赖。

2. 初始化插件

在你的Flutter项目中,首先需要初始化 budpay_flutter 插件。通常在 main.dart 或某个初始化文件中进行。

import 'package:budpay_flutter/budpay_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化Budpay插件
  await Budpay.initialize(
    publicKey: 'YOUR_PUBLIC_KEY', // 你的公钥
    secretKey: 'YOUR_SECRET_KEY', // 你的私钥
  );
  
  runApp(MyApp());
}

3. 发起支付

在需要发起支付的地方,调用 budpay_flutter 插件提供的支付方法。假设插件提供了一个 makePayment 方法。

import 'package:budpay_flutter/budpay_flutter.dart';

class PaymentScreen extends StatelessWidget {
  Future<void> initiatePayment() async {
    try {
      final paymentResponse = await Budpay.makePayment(
        amount: 10000, // 支付金额,单位为分
        currency: 'NGN', // 货币类型
        email: 'user@example.com', // 用户邮箱
      );
      
      if (paymentResponse.status == 'success') {
        // 支付成功处理
        print('Payment successful: ${paymentResponse.transactionId}');
      } else {
        // 支付失败处理
        print('Payment failed: ${paymentResponse.message}');
      }
    } catch (e) {
      // 处理异常
      print('Payment error: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Payment'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: initiatePayment,
          child: Text('Pay Now'),
        ),
      ),
    );
  }
}

4. 处理支付回调

支付完成后,通常会有回调通知支付结果。你可以在 makePayment 方法中处理这些回调。

final paymentResponse = await Budpay.makePayment(
  amount: 10000,
  currency: 'NGN',
  email: 'user@example.com',
  onSuccess: (response) {
    // 支付成功回调
    print('Payment successful: ${response.transactionId}');
  },
  onError: (error) {
    // 支付失败回调
    print('Payment failed: $error');
  },
);

5. 处理支付验证

在某些情况下,你可能需要在服务器端验证支付结果。你可以使用 budpay_flutter 插件提供的验证方法。

final verificationResponse = await Budpay.verifyPayment(
  transactionId: 'TRANSACTION_ID', // 交易ID
);

if (verificationResponse.status == 'success') {
  // 验证成功
  print('Payment verified: ${verificationResponse.amount}');
} else {
  // 验证失败
  print('Payment verification failed: ${verificationResponse.message}');
}

6. 处理错误和异常

在支付过程中,可能会遇到各种错误和异常。确保你在代码中妥善处理这些情况。

try {
  final paymentResponse = await Budpay.makePayment(
    amount: 10000,
    currency: 'NGN',
    email: 'user@example.com',
  );
} on BudpayException catch (e) {
  // 处理Budpay特定异常
  print('Budpay error: ${e.message}');
} catch (e) {
  // 处理其他异常
  print('Unexpected error: $e');
}
回到顶部