Flutter支付处理插件seerbit_flutter的使用

Flutter支付处理插件seerbit_flutter的使用


Seerbit Flutter SDK

Seerbit Flutter SDK 可用于将 SeerBit 支付网关集成到您的 Flutter 应用程序中。

要求

注册一个商家账户以开始使用:

  • Dart SDK: >=3.4.3 <4.0.0
  • Flutter: >=1.17.0
  • Android: 最低 SDK 版本为 17,并添加对 androidx 的支持(查看 AndroidX 迁移来迁移现有应用)
  • iOS: 使用 Swift,Xcode 版本 >= 12

安装

flutter pub get seerbit_flutter

API 文档

https://doc.seerbit.com

支持

如果您有任何问题、疑问或建议,请在这里创建一个问题或发送邮件至 care@seerbit.com

实现

您应该已经拥有您的 API 密钥。如果没有,请访问 https://dashboard.seerbitapi.com。登录 -> 设置菜单 -> API 密钥菜单 -> 复制您的公钥

属性

属性 类型 必须 默认值 描述
currency String 可选 NGN 交易货币,例如 NGN
email String 必须 用户的电子邮件地址
description String 可选 交易描述,可选
fullName String 可选 需要收费的用户的全名
country String 可选 交易国家,可选
transRef String 必须 每笔交易设置一个唯一的交易参考
amount String 必须 交易金额(单位为 kobo)
callbackUrl String 可选 成功交易时的重定向 URL
publicKey String 必须 您的公钥或参见上述步骤获取自己的公钥
closeOnSuccess bool 可选 False 成功交易时关闭结账
closePrompt bool 可选 False 如果未启动交易则关闭结账页面
setAmountByCustomer bool 可选 False 设置为 true 如果希望用户输入交易金额
pocketRef String 可选 您的口袋参考,适用于有口袋的供应商
vendorId String 可选 您业务的供应商ID
tokenize bool 可选 False 对卡进行标记化
planId String 可选 订阅计划ID
customization CustomizationModel 可选 CustomizationModel 自定义模式(borderColor: “#000000”, backgroundColor: “#004C64”, buttonColor: “#0084A0”, paymentMethod: [PayChannel.card, PayChannel.account, PayChannel.transfer, PayChannel.momo], confetti: false, logo: “logo_url 或 base64”)
onSuccess Method 可选 成功交易时的回调方法
onCancel Method 可选 交易取消时的回调方法

使用

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

class CheckOut extends StatelessWidget {
  const CheckOut({Key? key}) : super(key: key);
  SeerbitMethod SeerBit = new SeerbitMethod();

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.white,
      height: 1000,
      width: 500,
      child: Center(
        child: TextButton(
          onPressed: () => paymentStart(context),
          child: Text(
            "Checkout",
            style: TextStyle(color: Colors.red),
          ),
        ),
      ),
    );
  }

  paymentStart(context) {
    PayloadModel payload = PayloadModel(
      currency: 'NGN',
      email: "hellxo@gmxail.com",
      description: "Sneakers",
      fullName: "General ZxXXod",
      country: "NG",
      amount: "102",
      transRef: Random().nextInt(2000).toString(),
      publicKey: "merchant_public_key",
      pocketRef: "",
      vendorId: "vendorId",
      closeOnSuccess: false,
      closePrompt: false,
      setAmountByCustomer: false,
      tokenize: false,
      planId: "",
      customization: CustomizationModel(
        borderColor: "#000000",
        backgroundColor: "#004C64",
        buttonColor: "#0084A0",
        paymentMethod: [PayChannel.account, PayChannel.transfer, PayChannel.card, PayChannel.momo],
        confetti: false,
        logo: "logo_url 或 base64",
      )
    );

    SeerBit.startPayment(
      context, 
      payload: payload,
      onSuccess: (_) { print(_);}, 
      onCancel: (_) { print('*' * 400);}
    );
  }
}

onSuccess 会收到一个包含支付请求响应的 Map。

在支付过程中,您可以简单地通过调用来结束流程:

SeerbitMethod.endPayment(context);

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

1 回复

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


当然,以下是如何在Flutter项目中使用seerbit_flutter插件进行支付处理的代码示例。这个插件通常用于集成SeerBit支付网关,以便在Flutter应用中处理支付。

首先,确保你已经在pubspec.yaml文件中添加了seerbit_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  seerbit_flutter: ^最新版本号 # 请替换为实际的最新版本号

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

接下来,在你的Flutter项目中,你可以按照以下步骤使用seerbit_flutter插件:

  1. 初始化SeerBit支付配置

    在你需要发起支付的页面(例如PaymentScreen.dart),首先导入seerbit_flutter包并初始化支付配置。

    import 'package:flutter/material.dart';
    import 'package:seerbit_flutter/seerbit_flutter.dart';
    
    class PaymentScreen extends StatefulWidget {
      @override
      _PaymentScreenState createState() => _PaymentScreenState();
    }
    
    class _PaymentScreenState extends State<PaymentScreen> {
      Seerbit? seerbit;
    
      @override
      void initState() {
        super.initState();
        // 初始化SeerBit实例
        seerbit = Seerbit(
          publicKey: '你的公钥', // 替换为你的SeerBit公钥
          environment: 'sandbox', // 或 'production',取决于你的环境
          callbackUrl: 'https://your-callback-url.com', // 替换为你的回调URL
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('支付处理'),
          ),
          body: Center(
            child: ElevatedButton(
              onPressed: () async {
                await initiatePayment();
              },
              child: Text('发起支付'),
            ),
          ),
        );
      }
    
      Future<void> initiatePayment() async {
        try {
          // 构建支付请求数据
          Map<String, dynamic> paymentData = {
            'amount': 1000, // 支付金额,单位通常是分(取决于货币)
            'currency': 'USD', // 货币代码
            'email': 'user@example.com', // 用户邮箱
            'phone': '+1234567890', // 用户电话
            'reference': 'unique_payment_reference', // 唯一支付引用
            'metadata': {
              'custom_field1': 'value1',
              'custom_field2': 'value2',
            },
          };
    
          // 发起支付请求
          var response = await seerbit!.pay(paymentData);
    
          // 处理支付响应
          if (response['status'] == 'success') {
            // 支付成功,处理支付成功逻辑
            print('支付成功: ${response['data']}');
          } else {
            // 支付失败,处理支付失败逻辑
            print('支付失败: ${response['message']}');
          }
        } catch (e) {
          // 处理异常
          print('发生错误: $e');
        }
      }
    }
    
  2. 处理支付回调

    在你的Flutter应用中,你可能还需要处理支付回调。这通常涉及到在callbackUrl指定的服务器端处理回调请求,并在Flutter应用中根据回调结果更新UI。由于Flutter本身不直接处理HTTP回调,这部分逻辑通常在后端完成,然后通过某种机制(如Firebase Cloud Messaging、REST API等)通知Flutter应用。

请注意,上述代码是一个基本的示例,实际应用中你可能需要根据SeerBit的API文档调整支付数据和处理逻辑。此外,确保你的公钥、私钥和回调URL等敏感信息已正确配置,并遵循最佳安全实践来保护这些信息。

回到顶部