Flutter金融助手插件slang_bfsi_assistant的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter金融助手插件slang_bfsi_assistant的使用

安装Slang BFSI Assistant包

在您的代码库中运行以下命令以安装所需的包。

flutter pub add slang_bfsi_assistant

完成后,运行命令dart pub get并确保Slang助手已添加到依赖项中。

dependencies:
  slang_bfsi_assistant: ^2.0.2

代码集成

初始化

接下来,使用在Slang控制台创建助手时获得的密钥初始化SDK。

注意 这应该理想情况下在主方法中执行。

import 'package:slang_bfsi_assistant/slang_bfsi_assistant.dart';

// 获取给定助手的AssistantId和APIKey
var assistantConfig = AssistantConfiguration()
    ..assistantId = "<AssistantId>"
    ..apiKey = "<APIKey>";

// 使用上述配置初始化SDK
SlangBFSIAssistant.initialize(assistantConfig);

注意 在将应用程序发布给公众之前,请确保环境变量设置为生产环境。默认值设置为阶段。

var assistantConfig = AssistantConfiguration()
    ..assistantId = "<AssistantId>"
    ..apiKey = "<APIKey>"
    ..environment = AssistantEnvironment.production; // 设置为 .production

显示触发(麦克风图标)

注意 可以根据需要调用“显示”和“隐藏”方法来控制助手的可见性。

SlangBFSIAssistant.getUI().showTrigger(); // 还有一个对应的 hideTrigger 方法

注意 触发器是粘性的,这意味着它会在所有活动后显示出来。如果需要在特定活动上隐藏触发器,则需要调用:SlangBFSIAssistant.getUI().hideTrigger()

实现动作

最后但同样重要的是,应用程序需要实现与助手支持的各种用户旅程相关的操作。可以按以下方式实现:

SlangBFSIAssistant.setOnStockSearchListener(
    (stockInfo, searchUserJourney) => {
        // 使用stockInfo执行股票搜索操作。
        print(stockInfo.name),
        print(stockInfo.bseCode),
        print(stockInfo.nseCode),
        print(stockInfo.isinNumber),
        print(stockInfo.customId),
        print(stockInfo.action),
        print(stockInfo.utterance),
    });

OnStockSearchListener回调

(stockInfo, searchUserJourney)

可能触发交易信息的样本语句

  1. “显示TCS股票”
  2. “显示Infosys股票”

StockInfo参数

StockInfo 包含原始股票搜索请求的详细信息。其结构描述如下:

// 当用户搜索类似内容时
// "显示TCS股票"
// 这是StockInfo参数将如何填充
{
   "name": "Tata Consultancy Services Limited"
   "bseCode": "TCS",
   "nseCode": "TCS",
   "isinNumber": "INE467B01029",
   "customId": "CustomID001",
   "action": "search",
   "utterance": "Show me TCS Stock"
}

注意

Action 包括:

  1. "search"
  2. "buy"
  3. "sell"

完整示例代码

以下是完整的示例代码,展示如何使用 slang_bfsi_assistant 插件。

import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:slang_bfsi_assistant/slang_bfsi_assistant.dart';

void main() {
  runApp(const MaterialApp(
    home: MyApp(),
    debugShowCheckedModeBanner: false,
  ));
}

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _stockInfo = 'Stock Search Info appears here'; // 用于存储股票信息

  [@override](/user/override)
  void initState() {
    super.initState();
    initSlangAssistant();
  }

  void initSlangAssistant() {
    // 获取给定助手的AssistantId和APIKey
    var assistantConfig = AssistantConfiguration()
      ..assistantId = "<AssistantId>"
      ..apiKey = "<APIKey>";

    // 使用上述配置初始化SDK
    SlangBFSIAssistant.initialize(assistantConfig);

    // 启用Slang触发器显示在屏幕上
    SlangBFSIAssistant.getUI().showTrigger();

    // 获取股票搜索回调并执行所需的操作
    SlangBFSIAssistant.setOnStockSearchListener(
        (stockInfo, searchUserJourney) => {
              // 使用stockInfo执行股票搜索操作
              print(stockInfo.name),
              print(stockInfo.bseCode),
              print(stockInfo.nseCode),
              print(stockInfo.isinNumber),
              print(stockInfo.customId),
              print(stockInfo.action),
              print(stockInfo.utterance),

              // 设置状态变量作为示例,展示股票搜索对象的JSON表示
              setState(() {
                try {
                  JsonEncoder encoder = const JsonEncoder.withIndent('  ');
                  String searchMapString = encoder.convert(stockInfo);
                  _stockInfo = searchMapString;
                } catch (e) {
                  print(e);
                }
              })
            });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: AppBar(
              title: const Text('Slang BFSI PlayGround App'),
            ),
            body: Center(
                child: Column(
              mainAxisSize: MainAxisSize.max,
              children: [
                Container(height: 16), // 设置高度
                Flexible(
                    child: FractionallySizedBox(
                        widthFactor: 0.9,
                        heightFactor: 0.7,
                        child: SingleChildScrollView(
                            physics: const AlwaysScrollableScrollPhysics(),
                            child: Container(
                              height: MediaQuery.of(context).size.height,
                              decoration: const BoxDecoration(
                                shape: BoxShape.rectangle,
                                color: Colors.black,
                              ),
                              child: Padding(
                                padding: const EdgeInsets.all(16.0),
                                child: Text(
                                  '$_stockInfo\n',
                                  style: const TextStyle(
                                      fontSize: 20.0,
                                      fontWeight: FontWeight.bold,
                                      color: Colors.white),
                                ),
                              ),
                            ))))
              ],
            ))));
  }
}

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

1 回复

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


slang_bfsi_assistant 是一个 Flutter 插件,专为金融服务业(Banking, Financial Services, and Insurance,简称 BFSI)设计的助手工具。它可以帮助开发者快速集成金融服务相关的功能,如支付、账户管理、交易处理等。以下是使用 slang_bfsi_assistant 插件的基本步骤和示例代码。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  slang_bfsi_assistant: ^1.0.0  # 请替换为最新版本

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

2. 初始化插件

在你的 Flutter 应用中初始化 slang_bfsi_assistant 插件。通常,你可以在 main.dart 文件中进行初始化。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化插件
  await SlangBFSIAssistant.initialize(
    apiKey: 'your_api_key_here',  // 替换为你的 API 密钥
    environment: Environment.sandbox,  // 选择环境(sandbox 或 production)
  );

  runApp(MyApp());
}

3. 使用插件功能

slang_bfsi_assistant 提供了多种金融服务相关的功能。以下是一些常见的用例:

3.1 支付处理

void processPayment() async {
  try {
    PaymentResponse response = await SlangBFSIAssistant.processPayment(
      amount: 100.0,
      currency: 'USD',
      paymentMethod: PaymentMethod.creditCard,
      cardDetails: CardDetails(
        cardNumber: '4111111111111111',
        expiryDate: '12/25',
        cvv: '123',
      ),
    );

    print('Payment successful: ${response.transactionId}');
  } catch (e) {
    print('Payment failed: $e');
  }
}

3.2 获取账户余额

void getAccountBalance() async {
  try {
    double balance = await SlangBFSIAssistant.getAccountBalance();
    print('Account balance: $balance');
  } catch (e) {
    print('Failed to get balance: $e');
  }
}

3.3 查询交易历史

void getTransactionHistory() async {
  try {
    List<Transaction> transactions = await SlangBFSIAssistant.getTransactionHistory();
    for (var transaction in transactions) {
      print('Transaction ID: ${transaction.id}, Amount: ${transaction.amount}');
    }
  } catch (e) {
    print('Failed to get transaction history: $e');
  }
}

4. 处理回调

slang_bfsi_assistant 支持事件回调,你可以监听支付成功、失败等事件。

void setupCallbacks() {
  SlangBFSIAssistant.onPaymentSuccess.listen((PaymentResponse response) {
    print('Payment succeeded: ${response.transactionId}');
  });

  SlangBFSIAssistant.onPaymentFailed.listen((PaymentError error) {
    print('Payment failed: ${error.message}');
  });
}

5. 释放资源

在应用退出时,确保释放插件占用的资源。

void dispose() {
  SlangBFSIAssistant.dispose();
}

6. 处理错误

在使用 slang_bfsi_assistant 时,可能会遇到各种错误。确保在代码中妥善处理这些错误,以提供更好的用户体验。

void handleErrors() async {
  try {
    // 调用插件功能
  } on PaymentError catch (e) {
    print('Payment error: ${e.message}');
  } on NetworkError catch (e) {
    print('Network error: ${e.message}');
  } catch (e) {
    print('Unknown error: $e');
  }
}

7. 测试与调试

在开发过程中,建议使用 Environment.sandbox 环境进行测试。在生产环境中,切换到 Environment.production

await SlangBFSIAssistant.initialize(
  apiKey: 'your_api_key_here',
  environment: Environment.production,  // 切换到生产环境
);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!