Flutter银行账户验证插件nordigen_integration的使用
Flutter银行账户验证插件nordigen_integration的使用
nordigen_integration
是一个用于集成 Nordigen EU PSD2 AISP 银行 API 的 Dart/Flutter 包。本文将详细介绍如何在 Flutter 项目中使用该插件进行银行账户验证。
内容
- Usage Steps
- API Documentation
- Contributing
- Dependencies
- Tests Screenshot
- Vote of Thanks
- General Information
Usage Steps
Example Usage
以下是一个完整的示例,展示了如何使用 nordigen_integration
插件来实现银行账户验证:
import 'package:nordigen_integration/nordigen_integration.dart';
Future<void> main() async {
/// Step 1: 初始化 NordigenAccountInfoAPI 对象
final NordigenAccountInfoAPI apiInterface =
await NordigenAccountInfoAPI.fromSecret(
secretID: 'your_secret_id', // 替换为你的 Secret ID
secretKey: 'your_secret_key', // 替换为你的 Secret Key
);
/// Step 2: 获取国家内的银行列表,并选择第一个银行
final Institution firstBank =
(await apiInterface.getInstitutionsForCountry(countryCode: 'gb')).first;
/// Step 3: 创建用户协议
final EndUserAgreementModel endUserAgreementModel =
await apiInterface.createEndUserAgreement(
maxHistoricalDays: 90,
accessValidForDays: 90,
institutionID: firstBank.id,
);
/// Step 4: 创建请求并生成链接
final RequisitionModel requisition =
await apiInterface.createRequisitionAndBuildLink(
agreement: endUserAgreementModel.id,
institutionID: firstBank.id,
redirect: 'http://www.yourwebpage.com/', // 替换为你自己的重定向 URL
reference: 'exampleRef42069666',
);
/// 打印验证链接
print('Validate: ${requisition.link}');
}
使用步骤详解
-
初始化 NordigenAccountInfoAPI 对象: 使用
fromSecret
方法初始化 API 接口对象,传入你的secretID
和secretKey
。final NordigenAccountInfoAPI apiInterface = await NordigenAccountInfoAPI.fromSecret( secretID: 'your_secret_id', secretKey: 'your_secret_key', );
-
获取国家内的银行列表: 调用
getInstitutionsForCountry
方法获取指定国家(如英国'gb'
)内的银行列表,并选择第一个银行。final Institution firstBank = (await apiInterface.getInstitutionsForCountry(countryCode: 'gb')).first;
-
创建用户协议: 使用
createEndUserAgreement
方法创建用户协议,设置访问天数和历史交易天数。final EndUserAgreementModel endUserAgreementModel = await apiInterface.createEndUserAgreement( maxHistoricalDays: 90, accessValidForDays: 90, institutionID: firstBank.id, );
-
创建请求并生成链接: 使用
createRequisitionAndBuildLink
方法创建请求并生成验证链接。final RequisitionModel requisition = await apiInterface.createRequisitionAndBuildLink( agreement: endUserAgreementModel.id, institutionID: firstBank.id, redirect: 'http://www.yourwebpage.com/', reference: 'exampleRef42069666', );
-
打开验证链接: 最后,打印或处理生成的验证链接。
print('Validate: ${requisition.link}');
API Documentation
Available Methods
以下是 NordigenAccountInfoAPI
类提供的主要方法:
NordigenAccountInfoAPI({required String accessToken})
: 使用访问令牌初始化 API 接口。static Future<NordigenAccountInfoAPI> fromSecret({required String secretID, required String secretKey})
: 使用密钥生成接口。static Future<Map<String, dynamic>> createAccessToken({required String secretID, required String secretKey})
: 使用密钥生成访问令牌。getInstitutionsForCountry({required String countryCode})
: 获取指定国家的银行列表。createEndUserAgreement({required String institutionID, int maxHistoricalDays = 90, int accessValidForDays = 90, List<String> accessScope = const <String>['balances', 'details', 'transactions']})
: 创建用户协议。acceptEndUserAgreement({required String endUserAgreementID, required String ipAddress, required String userAgent})
: 接受用户协议。createRequisitionAndBuildLink({required String redirect, required String institutionID, String? agreement, required String reference, String? userLanguage})
: 创建请求并生成链接。
Available Data Classes
插件提供了多个数据类用于存储和处理从 API 返回的数据,包括 Institution
, EndUserAgreementModel
, RequisitionModel
等等。
Contributing
如果你想贡献代码,请查看 Contribution Guidelines。
Dependencies
- Dart SDK
- http package 用于处理 API 请求
Tests Screenshot
Vote of Thanks
感谢所有贡献者和支持者,特别是 Cashtic 公司对项目的赞助。
General Information
该项目是一个 Dart 包的起点,可以轻松共享到多个 Flutter 或 Dart 项目中。更多关于 Flutter 开发的帮助,请参阅 Flutter 文档。
希望这个指南能帮助你在 Flutter 项目中成功集成 Nordigen API!如果有任何问题或建议,请随时联系开发者或提交 issue。
更多关于Flutter银行账户验证插件nordigen_integration的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter银行账户验证插件nordigen_integration的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用nordigen_integration
插件来进行银行账户验证的示例代码。这个插件允许你集成Nordigen的API,以便在你的应用中实现银行账户验证功能。
首先,确保你已经在pubspec.yaml
文件中添加了nordigen_integration
依赖:
dependencies:
flutter:
sdk: flutter
nordigen_integration: ^最新版本号 # 请替换为实际的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,在你的Flutter项目中,你可以按照以下步骤配置和使用nordigen_integration
插件:
- 初始化插件:
在你的主文件(通常是main.dart
)或者一个合适的初始化位置,配置Nordigen的API密钥和其他必要的设置。
import 'package:flutter/material.dart';
import 'package:nordigen_integration/nordigen_integration.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Nordigen插件
Nordigen.instance.configure(
apiKey: '你的Nordigen API密钥',
sandbox: true, // 如果是沙盒环境,设置为true;生产环境设置为false
);
runApp(MyApp());
}
- 创建银行账户验证页面:
创建一个新的页面或组件来处理银行账户验证流程。
import 'package:flutter/material.dart';
import 'package:nordigen_integration/nordigen_integration.dart';
class BankAccountVerificationPage extends StatefulWidget {
@override
_BankAccountVerificationPageState createState() => _BankAccountVerificationPageState();
}
class _BankAccountVerificationPageState extends State<BankAccountVerificationPage> {
String _institutionName = '';
String _bic = '';
String _iban = '';
String _accountHolderName = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('银行账户验证'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('请扫描或手动输入您的银行信息'),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
// 打开Nordigen的银行选择界面
final result = await Nordigen.instance.startInstitutionSelection(
context,
onSuccess: (institution) {
setState(() {
_institutionName = institution.name;
_bic = institution.bic;
_iban = institution.iban ?? '';
_accountHolderName = institution.accountHolderName ?? '';
});
// 在这里你可以处理获取到的银行信息,比如发送到服务器进行进一步验证
},
onError: (error) {
// 处理错误
print('Error: $error');
},
);
if (result == null || !result) {
// 用户取消了操作
print('User cancelled the operation.');
}
},
child: Text('选择银行'),
),
SizedBox(height: 20),
if (_institutionName.isNotEmpty)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text('银行名称: $_institutionName'),
Text('BIC: $_bic'),
Text('IBAN: $_iban'),
Text('账户持有人姓名: $_accountHolderName'),
],
),
],
),
),
);
}
}
- 导航到验证页面:
在你的主应用逻辑中,添加导航到银行账户验证页面的代码。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Demo Home Page'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => BankAccountVerificationPage()),
);
},
child: Text('验证银行账户'),
),
),
),
);
}
}
这个示例展示了如何使用nordigen_integration
插件在Flutter应用中启动银行选择界面,并处理用户选择的银行信息。请注意,你需要替换你的Nordigen API密钥
为你在Nordigen平台上获得的实际API密钥,并根据你的应用需求进一步处理获取到的银行信息。