Flutter支付码生成与处理插件fps_payment_code的使用

Flutter支付码生成与处理插件fps_payment_code的使用

插件简介

fps_payment_code 是一个用于生成 FPS 支付码的 Flutter 插件。它支持多种平台,并且可以灵活地生成基于手机号、ID 或电子邮件的支付码。


平台支持

Android iOS MacOS Web Linux Windows

使用要求

  • Flutter >=3.0.1
  • Dart >=2.18.0 <4.0.0
  • iOS >=12.0
  • MacOS >=10.14
  • Android compileSDK 34
  • Java 17
  • Android Gradle Plugin >=8.3.0
  • Gradle wrapper >=8.4

使用方法

导入插件

在项目中添加依赖:

dependencies:
  fps_payment_code: ^版本号

然后导入插件:

import 'package:fps_payment_code/fps_payment_code.dart';

初始化生成器

实例化 FPSCodeGenerator

FPSCodeGenerator generator = FPSCodeGenerator();

生成支付码

示例 1: 使用 ID 生成支付码

var paymentCode = generator.generate(
  fpsType: FpsType.id, // 支付标识类型为 ID
  fpsId: '1234567',     // 支付标识(ID)
  currency: 'HKD',       // 货币代码
  amount: '100',         // 交易金额
  merchantName: 'Your Merchant Name', // 商户名称
  additionalData: FPSCodeAdditionalData( // 可选附加数据
    billNumber: '12345', // 账单编号
    mobileNumber: '98765432', // 手机号码
  ),
);

print(paymentCode); // 输出生成的支付码

示例 2: 使用手机号生成支付码

var paymentCode = generator.generate(
  fpsType: FpsType.phoneNumber, // 支付标识类型为手机号
  phoneNumber: '+852-92570683', // 用户手机号
  currency: 'HKD',              // 货币代码
  amount: '100.00',             // 交易金额
);

print(paymentCode); // 输出生成的支付码

参数说明

FPSCodeGenerator

  • fpsType: 支付标识类型(手机号、ID 或电子邮件)。
  • fpsId: 如果 fpsType 是 ID,则为支付标识。
  • phoneNumber: 如果 fpsType 是手机号,则为用户手机号。
  • email: 如果 fpsType 是电子邮件,则为用户邮箱地址。
  • currency: 货币代码(例如 HKD)。
  • amount: 交易金额。
  • merchantName: 商户名称。
  • additionalData: 可选的交易附加数据。

FPSCodeAdditionalData

  • billNumber: 账单编号,最多 25 个字符。
  • mobileNumber: 手机号码,最多 25 个字符。
  • storeLabel: 商店标签,最多 25 个字符。
  • loyaltyNumber: 忠诚度编号,最多 25 个字符。
  • referenceLabel: 引用标签,最多 25 个字符。
  • customerLabel: 客户标签,最多 25 个字符。
  • terminalLabel: 终端标签,最多 25 个字符。
  • purposeOfTransaction: 交易目的,最多 25 个字符。
  • additionalConsumerDataRequest: 消费者额外数据请求,最多 25 个字符。

支持的功能

交易类型

  • 支持三种支付标识类型:手机号、ID 和电子邮件,用户可以根据需求选择适合的方式接收付款。

货币支持

  • 提供全面的货币代码列表(基于 ISO 4217),确保用户可以指定正确的交易货币。

商户信息

  • 包括国家、城市和商户名称等详细信息。

额外数据处理

  • FPSCodeAdditionalData 类允许用户添加可选字段,如账单编号、商店标签等,同时确保某些字段(如账单编号和引用标签)不能同时存在。

验证检查

  • 基于 ISO/IEC 13239 的 CRC 校验(多项式为 ‘1021’,初始值为 ‘FFFF’),确保生成的支付码格式正确且无误。

示例代码

以下是完整的示例代码:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('FPS Payment Code Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              FPSCodeGenerator generator = FPSCodeGenerator();

              var paymentCode = generator.generate(
                fpsType: FpsType.phoneNumber,
                phoneNumber: '+852-92570683',
                currency: 'HKD',
                amount: '100.00',
              );

              print('Generated Payment Code: $paymentCode');
            },
            child: Text('Generate Payment Code'),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


fps_payment_code 是一个用于生成和处理支付码的 Flutter 插件,通常用于生成二维码或条形码,以便用户可以通过扫描这些码进行支付。以下是如何使用 fps_payment_code 插件的基本步骤:

1. 添加依赖

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

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

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

2. 导入插件

在你的 Dart 文件中导入 fps_payment_code 插件:

import 'package:fps_payment_code/fps_payment_code.dart';

3. 生成支付码

使用 FpsPaymentCode 类来生成支付码。以下是一个简单的示例,展示如何生成一个二维码:

class PaymentCodeScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('支付码生成'),
      ),
      body: Center(
        child: FpsPaymentCode(
          data: 'https://example.com/payment', // 支付链接或数据
          size: 200.0, // 二维码大小
          format: FpsPaymentCodeFormat.qrCode, // 生成二维码
          errorCorrectionLevel: FpsPaymentCodeErrorCorrectionLevel.high, // 纠错级别
        ),
      ),
    );
  }
}

4. 处理支付码

你可以使用 FpsPaymentCode 插件来处理支付码,例如扫描二维码并获取其中的数据。以下是一个简单的示例:

class ScanPaymentCodeScreen extends StatelessWidget {
  Future<void> _scanPaymentCode(BuildContext context) async {
    try {
      String result = await FpsPaymentCode.scan();
      // 处理扫描结果
      print('扫描结果: $result');
    } catch (e) {
      print('扫描失败: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('扫描支付码'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () => _scanPaymentCode(context),
          child: Text('扫描支付码'),
        ),
      ),
    );
  }
}
回到顶部