Flutter后端服务集成插件bbaas的使用

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

Flutter后端服务集成插件bbaas的使用

Blockchain and Banking as a Service by BBaaS.org

一个Dart包,提供了BBaaS服务。

支持 Dart
SDK版本 >=3.2.0

使用方法

要使用此包,需要在pubspec.yaml文件中添加bbaas作为依赖。联系BBaaS.org验证您的服务安全密钥

import 'package:bbaas/bbaas.dart';

实例化BBaaS API包

BBaaS bbaas = BBaaS(
   scheme: 'https',
   host: 'api.bbaas.com.br',
   clientName: 'mycompany',
   authentication: 'authentication-token',
   privateKey: 'rsa-privatekey',
   network: 'hathor',
    gatewayOptions: CGOptions(
   login: '12345-TEST',
   password: 'abcdefghijklmnopqrstuvwxyz',
   merchantWebsiteId: '12345-TEST',
   pixCashInRedirectUrl: 'https://exemplo.mysite.com',
   pixCashInOnSuccessUrl: '10.40.20.30:300/webhook',
   pixCashInOnThreeDSecureUrl: '10.40.20.30:300/webhook',
   pixCashInOnFailUrl: '10.20.30:300/webhook',
   pixCashOutOnSuccessUrl: '10.20.30:300/webhook',
  pixCashOutOnFailUrl: '10.20.30:300/webhook',
  upstreamDestination: 123,
 ),
);

实例化客户端

CollectionClient collectionClient = bbaas.client(bbaas.clientName);

实例化钱包用户

CollectionClient collectionClient = bbaas.client(bbaas.clientName);

获取Hathor HashWords

HashWords seed = await walletUser.newWallet();
print(seed.words);

启动Hathor钱包

bool result;
Map<String, dynamic> response;
(result, response) = await walletUser.start(seed);
print(result);
print(response);

获取余额方法

String balance = await walletUser.balance();  // 获取钱包余额
String balanceTokenX = await walletUser.balance(tokenX); // 获取特定令牌的余额
String balanceTokenY = await walletUser.balance(tokenY); // 如果有其他令牌

从地址获取余额方法

String address = await walletUser.getAddress(); // 获取地址
String balanceAddress = await walletUser.address(address).balance(); // 获取地址余额
String balanceAddressTokenX =
                await walletUser.address(address).balance(tokenX); // 获取特定令牌的地址余额

获取新地址并标记最后一个地址为已使用

String address = await walletUser.getNewAddress();  // 获取新地址
print(address);

发送令牌方法

// 发送Hathor
String success = '';
String message = '';
(success, message) = await walletUser.send(addressTo, amount, 'HTR');  
print(success);
print(message);

// 发送TokenX
String success = '';
String message = '';
(success, message) = await walletUser.send(addressTo, amount, tokenCode); 
print(success);
print(message);

停止Hathor钱包

String resultStop = await walletUser.stop(); // 停止钱包

实例化CG

CG cg = CG(collectionClient.payMethod(), collectionClient);
bool result;
Map<String, dynamic> response;

// CG Pix CashIn
(result, response) =
    await cg.pixCashIn(description: "description", amountCentsInt: 100);

// CG Balance
(result, response) = await cg.getBalance();

// CG Pix Cashout
(result, response) = await cg.pixCashOut(
    pixOperationDictKey: "21999999999",
    description: "description",
    amountCentsInt: 100); // 最小金额为100
print(result);
print(response);

更多关于Flutter后端服务集成插件bbaas的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter后端服务集成插件bbaas的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中集成并使用后端服务插件 bbaas 的示例代码。bbaas 是一个假定的后端服务插件名称,用于演示目的。在实际开发中,你需要根据具体插件的文档进行调整。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  bbaas: ^1.0.0  # 示例版本号,请根据实际情况填写

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

2. 初始化插件

在你的 Flutter 项目的入口文件(通常是 main.dart)中,初始化 bbaas 插件。

import 'package:flutter/material.dart';
import 'package:bbaas/bbaas.dart';  // 导入插件

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化 bbaas 插件
    Bbaas.initialize("YOUR_API_KEY");  // 替换为你的实际 API 密钥
    
    return MaterialApp(
      title: 'Flutter Bbaas Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

3. 使用插件功能

假设 bbaas 插件提供了用户认证和数据存储的功能,以下是如何使用这些功能的示例代码。

用户认证

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String userStatus = "Not Logged In";

  void loginUser(String email, String password) async {
    try {
      // 调用登录方法
      bool isLoggedIn = await Bbaas.auth.login(email: email, password: password);
      setState(() {
        userStatus = isLoggedIn ? "Logged In" : "Login Failed";
      });
    } catch (e) {
      print("Login error: $e");
      setState(() {
        userStatus = "Login Failed";
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Bbaas Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            Text("User Status: $userStatus"),
            SizedBox(height: 20),
            TextField(
              decoration: InputDecoration(labelText: 'Email'),
              onSubmitted: (value) {
                // 获取密码输入框的焦点
                FocusScope.of(context).requestFocus(new FocusNode());
              },
            ),
            SizedBox(height: 10),
            TextField(
              obscureText: true,
              decoration: InputDecoration(labelText: 'Password'),
              onSubmitted: (value) {
                // 执行登录
                loginUser(emailController.text, value);
              },
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 假设 emailController 是 Email 输入框的 TextEditingController
                // 这里你需要管理这个 controller,例如通过 State
                loginUser("example@example.com", "password123");
              },
              child: Text('Login'),
            ),
          ],
        ),
      ),
    );
  }
}

数据存储

void saveData(String key, String value) async {
  try {
    // 调用存储方法
    await Bbaas.database.save(key: key, value: value);
    print("Data saved successfully");
  } catch (e) {
    print("Save error: $e");
  }
}

void fetchData(String key) async {
  try {
    // 调用获取方法
    String value = await Bbaas.database.fetch(key: key);
    print("Fetched data: $value");
  } catch (e) {
    print("Fetch error: $e");
  }
}

4. 在 UI 中使用数据存储功能

你可以将上述数据存储和获取功能集成到你的 UI 中,例如通过按钮点击事件来触发。

ElevatedButton(
  onPressed: () {
    saveData("username", "JohnDoe");
  },
  child: Text('Save Data'),
),
ElevatedButton(
  onPressed: () {
    fetchData("username");
  },
  child: Text('Fetch Data'),
),

注意事项

  1. API 密钥:确保不要在客户端代码中硬编码敏感信息,如 API 密钥。考虑使用环境变量或安全存储。
  2. 错误处理:在生产环境中,应实现更健壮的错误处理和用户反馈机制。
  3. 文档:始终参考具体插件的官方文档,因为插件的 API 和初始化方法可能会随着版本更新而变化。

希望这些示例代码能帮助你在 Flutter 项目中集成并使用 bbaas 插件。如果你使用的是具体的后端服务插件,请参考该插件的官方文档进行调整。

回到顶部