Flutter支付集成插件paystack_trans_charges_to_cus的使用

Flutter支付集成插件paystack_trans_charges_to_cus的使用

paystack_trans_charges_to_cus

A new Flutter project Util Library for passing Paystack transaction charges to customer


使用说明

本项目是一个用于在Flutter应用中集成Paystack支付功能的工具库。通过此插件,您可以轻松地将Paystack交易费用转嫁给客户。

功能概述

  • 将Paystack支付的交易费用直接从客户支付金额中扣除。
  • 支持多种货币的交易。
  • 提供详细的回调机制以处理支付结果。

安装与配置

1. 添加依赖

在您的pubspec.yaml文件中添加以下依赖:

dependencies:
  paystack_trans_charges_to_cus: ^1.0.0

然后运行以下命令以安装依赖:

flutter pub get

2. 配置Paystack密钥

在使用插件之前,您需要在Paystack平台注册并获取API密钥。将密钥添加到您的Flutter项目中。

示例代码

import 'package:paystack_trans_charges_to_cus/paystack_trans_charges_to_cus.dart';

void main() async {
  // 初始化Paystack密钥
  await PaystackTransChargesToCus.initialize(
    publicKey: "your_paystack_public_key",
    secretKey: "your_paystack_secret_key",
  );

  // 调用支付方法
  await PaystackTransChargesToCus.startPayment(
    amount: 10000, // 支付金额(单位为分)
    email: "customer@example.com", // 客户邮箱
    currency: "NGN", // 货币类型(例如:NGN表示尼日利亚奈拉)
    reference: "unique_reference_id", // 唯一交易标识符
  );
}

完整示例代码

以下是一个完整的示例,展示如何在Flutter应用中集成paystack_trans_charges_to_cus插件。

import 'package:flutter/material.dart';
import 'package:paystack_trans_charges_to_cus/paystack_trans_charges_to_cus.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("Paystack Payment Example")),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 初始化Paystack密钥
              await PaystackTransChargesToCus.initialize(
                publicKey: "your_paystack_public_key",
                secretKey: "your_paystack_secret_key",
              );

              // 开始支付流程
              try {
                final result = await PaystackTransChargesToCus.startPayment(
                  amount: 10000, // 支付金额(单位为分)
                  email: "customer@example.com", // 客户邮箱
                  currency: "NGN", // 货币类型(例如:NGN表示尼日利亚奈拉)
                  reference: "unique_reference_id", // 唯一交易标识符
                );

                if (result.success) {
                  print("支付成功!交易ID: ${result.transactionId}");
                } else {
                  print("支付失败!");
                }
              } catch (e) {
                print("支付过程中发生错误: $e");
              }
            },
            child: Text("发起支付"),
          ),
        ),
      ),
    );
  }
}
1 回复

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


paystack_trans_charges_to_cus 是一个 Flutter 插件,用于在集成 Paystack 支付时,将交易费用转嫁给客户。这个插件可以帮助开发者在处理支付时,将 Paystack 的交易费用(如手续费)直接添加到客户的支付金额中,而不是由商家承担。

以下是如何在 Flutter 项目中使用 paystack_trans_charges_to_cus 插件的步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  paystack_trans_charges_to_cus: ^1.0.0  # 请使用最新版本

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

2. 初始化 Paystack

在使用插件之前,你需要初始化 Paystack。通常,你需要在应用的 main.dart 文件中进行初始化。

import 'package:paystack_trans_charges_to_cus/paystack_trans_charges_to_cus.dart';

void main() {
  PaystackPlugin.initialize(
    publicKey: 'your_paystack_public_key',
  );
  runApp(MyApp());
}

3. 使用插件进行支付

接下来,你可以在需要支付的地方使用 paystack_trans_charges_to_cus 插件来处理支付。

import 'package:flutter/material.dart';
import 'package:paystack_trans_charges_to_cus/paystack_trans_charges_to_cus.dart';

class PaymentScreen extends StatefulWidget {
  [@override](/user/override)
  _PaymentScreenState createState() => _PaymentScreenState();
}

class _PaymentScreenState extends State<PaymentScreen> {
  final _formKey = GlobalKey<FormState>();
  final _emailController = TextEditingController();
  final _amountController = TextEditingController();

  Future<void> _processPayment() async {
    if (_formKey.currentState!.validate()) {
      final email = _emailController.text;
      final amount = int.parse(_amountController.text) * 100; // 转换为 kobo

      try {
        final response = await PaystackPlugin.chargeCard(
          email: email,
          amount: amount,
          card: Card(
            number: '4084084084084081', // 测试卡号
            cvc: '408', // 测试 CVC
            expiryMonth: 12, // 测试过期月份
            expiryYear: 2025, // 测试过期年份
          ),
          transactionChargesToCustomer: true, // 将交易费用转嫁给客户
        );

        if (response.status == true) {
          // 支付成功
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('Payment successful!')),
          );
        } else {
          // 支付失败
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('Payment failed: ${response.message}')),
          );
        }
      } catch (e) {
        // 处理异常
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('Error: $e')),
        );
      }
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Paystack Payment'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Form(
          key: _formKey,
          child: Column(
            children: [
              TextFormField(
                controller: _emailController,
                decoration: InputDecoration(labelText: 'Email'),
                validator: (value) {
                  if (value!.isEmpty) {
                    return 'Please enter your email';
                  }
                  return null;
                },
              ),
              TextFormField(
                controller: _amountController,
                decoration: InputDecoration(labelText: 'Amount (in Naira)'),
                keyboardType: TextInputType.number,
                validator: (value) {
                  if (value!.isEmpty) {
                    return 'Please enter the amount';
                  }
                  return null;
                },
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: _processPayment,
                child: Text('Pay Now'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!