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
通过传递apiKey
、customerId
、firstName
、lastName
和phoneNumber
来构建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
更多关于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');
// 根据事件类型进行处理
});