Flutter身份验证与KYC验证插件flutter_dojah_kyc的使用

Flutter身份验证与KYC验证插件flutter_dojah_kyc的使用

安装

首先,在你的 pubspec.yaml 文件中添加 flutter_dojah_kyc 作为依赖。

iOS

Info.plist 文件中添加以下键:

  • NSCameraUsageDescription - 描述为什么你的应用需要访问相机。这在可视化编辑器中称为隐私 - 摄像头使用描述。
  • NSMicrophoneUsageDescription - 如果你要录制视频,描述为什么你的应用需要访问麦克风。这在可视化编辑器中称为隐私 - 麦克风使用描述。
  • NSLocationWhenInUseUsageDescription - 如果你要验证地址或位置,描述为什么你的应用需要访问位置。这在可视化编辑器中称为隐私 - 位置使用描述。

Podfile

在 Podfile 中包含以下内容:

PermissionGroup.camera
PERMISSION_CAMERA=1,
PermissionGroup.microphone
PERMISSION_MICROPHONE=1,
PermissionGroup.location
PERMISSION_LOCATION=1,

Android

AndroidManifest.xml 文件中添加以下权限:

<!-- 添加相机权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 添加修改音频设置权限 -->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!-- 添加互联网权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- 添加粗略位置权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 添加精确位置权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

使用

下面是一个完整的示例代码,展示了如何使用 flutter_dojah_kyc 进行身份验证与KYC验证:

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("Flutter Dojah KYC Demo"),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              final Map<String, dynamic> config = {
                debug: true,
                otp: true, // 对于验证类型
                selfie: true // 对于验证类型
              };

              final userData = {
                "first_name": "John",
                "last_name": "Doe",
                "dob": "1990-04-16",
                "residence_country": "Nigeria",
                "email": "abc@gmail.com"
              };

              final configObj = {
                "widget_id": "Your Widget ID"
              };

              final metaData = {
                "user_id": "81828289191919193882",
                "many_other_custom_fields": "",
              };

              final govData = {
                "bvn": "",
                "nin": "",
                "dl": "",
                "mobile": ""
              };

              final govId = {
                "passport": "https://d.jpeg",  
                "national": "https://d.jpeg",    // 国家身份证/ NIN Slip
                "dl": "https://d.jpeg",         // 驾驶证
                "permit": "https://d.jpeg", 
                "voter": "https://d.jpeg",
                "custom": "https://d.jpeg",
              };

              final DojahKYC _dojahKYC = DojahKYC(
                appId: "your_app_id_here",
                publicKey: "your_public_key_here",
                type: "custom",
                userData: userData, // 可选
                metaData: metaData, // 可选
                config: configObj, 
                govData: govData, // 可选
                govId: govId, // 可选
                referenceId: "reference_id_here" // 可选
              );

              _dojahKYC.open(
                context,
                onSuccess: (result) {
                  print('$result');
                },
                onClose: (close) => print('Widget Closed'),
                onError: (err) {
                  print('error: $err');
                }
              );
            },
            child: Text("启动KYC验证"),
          ),
        ),
      ),
    );
  }
}

部署

在部署到生产环境时,记得更改 APP IDPUBLIC KEY

REMEMBER TO CHANGE THE APP ID and PUBLIC KEY WHEN DEPLOYING TO A LIVE (PRODUCTION) ENVIRONMENT

更多关于Flutter身份验证与KYC验证插件flutter_dojah_kyc的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter身份验证与KYC验证插件flutter_dojah_kyc的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter应用中使用flutter_dojah_kyc插件来实现身份验证和KYC(Know Your Customer)验证的代码示例。这个插件通常用于集成Dojah API,以便在Flutter应用中处理身份验证和KYC流程。

首先,确保你已经在pubspec.yaml文件中添加了flutter_dojah_kyc依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_dojah_kyc: ^latest_version  # 替换为最新的版本号

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

接下来,在你的Flutter项目中,你可以按照以下步骤使用flutter_dojah_kyc插件:

1. 初始化插件和配置

在你的主文件(例如main.dart)中,导入必要的包并初始化插件:

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  // 初始化Dojah配置
  Dojah.instance.configure(
    publicKey: 'your_public_key', // 替换为你的Dojah公钥
    secretKey: 'your_secret_key', // 替换为你的Dojah私钥(注意:私钥不应该在客户端代码中暴露,这里仅为示例)
    environment: 'sandbox', // 或者 'production'
  );
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Dojah KYC Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: KYCPage(),
    );
  }
}

2. 创建KYC页面

创建一个新的页面(例如KYCPage.dart)来处理KYC验证流程:

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

class KYCPage extends StatefulWidget {
  @override
  _KYCPageState createState() => _KYCPageState();
}

class _KYCPageState extends State<KYCPage> {
  final TextEditingController _nameController = TextEditingController();
  final TextEditingController _emailController = TextEditingController();
  final TextEditingController _phoneController = TextEditingController();
  final TextEditingController _documentController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('KYC Verification'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            TextField(
              controller: _nameController,
              decoration: InputDecoration(labelText: 'Name'),
            ),
            TextField(
              controller: _emailController,
              decoration: InputDecoration(labelText: 'Email'),
            ),
            TextField(
              controller: _phoneController,
              decoration: InputDecoration(labelText: 'Phone'),
            ),
            TextField(
              controller: _documentController,
              decoration: InputDecoration(labelText: 'Document ID'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                // 调用Dojah API进行KYC验证
                try {
                  var response = await Dojah.instance.verifyKYC(
                    name: _nameController.text,
                    email: _emailController.text,
                    phone: _phoneController.text,
                    document: _documentController.text,
                  );

                  // 处理响应
                  if (response.status == 'success') {
                    ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text('KYC Verification Successful')),
                    );
                  } else {
                    ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text('KYC Verification Failed: ${response.message}')),
                    );
                  }
                } catch (e) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Error: ${e.message}')),
                  );
                }
              },
              child: Text('Verify KYC'),
            ),
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    _nameController.dispose();
    _emailController.dispose();
    _phoneController.dispose();
    _documentController.dispose();
    super.dispose();
  }
}

注意事项

  1. 私钥保护:在实际应用中,私钥应该存储在服务器端,而不是客户端代码中。客户端只应发送请求到服务器,服务器再与Dojah API进行通信。
  2. 错误处理:上面的代码示例简单地处理了错误,但在生产环境中,你应该有更详细的错误处理和用户反馈机制。
  3. 数据验证:在发送请求之前,你应该对用户输入的数据进行验证,以确保它们是有效和正确的。
  4. 安全性:确保你的应用遵循最佳的安全实践,特别是在处理敏感信息(如用户身份和文档ID)时。

这个示例代码展示了如何在Flutter应用中集成和使用flutter_dojah_kyc插件进行身份验证和KYC验证。根据你的具体需求,你可能需要调整代码来适应你的应用场景。

回到顶部