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等敏感信息已正确配置,并遵循最佳安全实践来保护这些信息。

回到顶部