Flutter金融数据服务插件finbox_bureau_plugin的使用

Flutter金融数据服务插件finbox_bureau_plugin的使用

BureauConnect Flutter SDK 是一个围绕Android SDK构建的包装器,它帮助你在通过你的Android应用程序获取局数据之前从用户那里获得同意。

添加插件

local.properties文件中指定以下内容:

ACCESS_KEY=<ACCESS_KEY>
SECRET_KEY=<SECRET_KEY>
FBC_SDK_VERSION=<FBC_SDK_VERSION>

pubspec.yaml文件中添加插件依赖项:

finbox_bureau_plugin: any

注意事项

以下信息将由FinBox团队在集成时共享:

  • ACCESS_KEY
  • SECRET_KEY
  • FBC_SDK_VERSION
  • CLIENT_API_KEY

构建Bureau Connect

通过传递apiKeycustomerIdfirstNamelastNamephoneNumber来构建FinBoxBureauConnect对象。

ENVIRONMENT是一个可选字段,默认值为PROD

提示

当将应用迁移到生产环境时,需要将ENVIRONMENT更新为PROD

现在所有必需的参数都已准备好,我们可以开始SDK流程:

FinBoxBureauPlugin.initSdk("<ENVIRONMENT>",
        "<CLIENT_API_KEY>",
        "<CUSTOMER_ID>",
        "CUSTOMER_FIRST_NAME",
        "CUSTOMER_LAST_NAME",
        "CUSTOMER_PHONE_NUMBER");

开始SDK流程

启动BureauActivity:

FinBoxBureauPlugin.startBureauJourney();

解析结果

一旦用户授予了同意,SDK将会自动关闭。一旦SDK关闭,成功或失败的结果将会返回。

build方法中监听结果回调:

FinBoxBureauPlugin.platform.setMethodCallHandler(_getBureauJourneyResult);
static Future<void> _getBureauJourneyResult(MethodCall call) async {
  if (call.method == 'getBureauJourneyResult') {
    var resultJson = call.arguments;
    print("Result JSON $resultJson");
  }
}

接收到的JSON如下:

{"consent_given":true,"error_type":"error_code","message":"msg"}

完整示例Demo

以下是完整的示例代码:

import 'package:finbox_bureau_plugin/finbox_bureau_plugin.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

TextEditingController apiKeyController = new TextEditingController(text: "0afe72e024894798acccc883678282e5");
TextEditingController customerIdController = new TextEditingController(text: "");
TextEditingController firstNameController = new TextEditingController(text: "");
TextEditingController middleNameController = new TextEditingController(text: "");
TextEditingController lastNameController = new TextEditingController(text: "");
TextEditingController phoneNumberController = new TextEditingController(text: "");
TextEditingController envController = new TextEditingController(text: "UAT");

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'BureauConnect Flutter Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  void _startBureauConnect() {
    FinBoxBureauPlugin.initSdk(envController.text,
        apiKeyController.text,
        customerIdController.text,
        firstNameController.text,
        middleNameController.text,
        lastNameController.text,
        phoneNumberController.text);
    FinBoxBureauPlugin.startBureauJourney();
  }

  static Future<void> _getBureauJourneyResult(MethodCall call) async {
    if (call.method != 'getBureauJourneyResult') return;
    print("Journey Results JSON ${call.arguments}");
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    FinBoxBureauPlugin.platform.setMethodCallHandler(_getBureauJourneyResult);

    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Container(
        padding: const EdgeInsets.all(32.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            TextField(
              controller: apiKeyController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'Api Key',
              ),
            ),
            TextField(
              controller: customerIdController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'Customer Id',
              ),
            ),
            TextField(
              controller: firstNameController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'First Name',
              ),
            ),
            TextField(
              controller: middleNameController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'Middle Name',
              ),
            ),
            TextField(
              controller: lastNameController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'Last Name',
              ),
            ),
            TextField(
              controller: phoneNumberController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'Phone Number',
              ),
            ),
            TextField(
              controller: envController,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                hintText: 'Environment',
              ),
            ),
            ElevatedButton(
              onPressed: _startBureauConnect,
              child: const Text("Start BureauConnect"),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter金融数据服务插件finbox_bureau_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter金融数据服务插件finbox_bureau_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


finbox_bureau_plugin 是一个用于 Flutter 的金融数据服务插件,主要用于获取用户的信用报告、财务数据等信息。该插件通常与金融科技公司(如 FinBox)的 API 集成,以便在移动应用中提供信贷评估、风险分析等功能。

以下是一个基本的使用指南,帮助你了解如何在 Flutter 项目中使用 finbox_bureau_plugin

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  finbox_bureau_plugin: ^<latest_version>  # 请替换为最新版本

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

2. 初始化插件

在你的 Flutter 应用中,你需要初始化 finbox_bureau_plugin。通常,你会在 main.dart 文件中进行初始化:

import 'package:finbox_bureau_plugin/finbox_bureau_plugin.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 FinBox Bureau Plugin
  await FinBoxBureauPlugin.initialize(
    apiKey: 'YOUR_API_KEY',  // 将 YOUR_API_KEY 替换为你的 FinBox API Key
    environment: FinBoxEnvironment.sandbox,  // 或 FinBoxEnvironment.production
  );
  
  runApp(MyApp());
}

3. 获取信用报告

你可以使用 FinBoxBureauPlugin 来获取用户的信用报告。以下是一个简单的示例:

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

class CreditReportScreen extends StatefulWidget {
  @override
  _CreditReportScreenState createState() => _CreditReportScreenState();
}

class _CreditReportScreenState extends State<CreditReportScreen> {
  String _creditReport = 'Loading...';

  @override
  void initState() {
    super.initState();
    _fetchCreditReport();
  }

  Future<void> _fetchCreditReport() async {
    try {
      final response = await FinBoxBureauPlugin.getCreditReport(
        userId: 'USER_ID',  // 替换为用户的唯一标识符
      );
      setState(() {
        _creditReport = response.toString();
      });
    } catch (e) {
      setState(() {
        _creditReport = 'Error: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Credit Report'),
      ),
      body: Center(
        child: Text(_creditReport),
      ),
    );
  }
}

4. 处理回调

在某些情况下,你可能需要处理插件返回的回调,例如当用户完成某些操作时。你可以通过设置回调监听器来实现:

FinBoxBureauPlugin.setCallbackListener((event) {
  print('Event: $event');
  // 根据事件类型进行处理
});
回到顶部