Flutter后端服务集成插件bbaas的使用
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'),
),
注意事项
- API 密钥:确保不要在客户端代码中硬编码敏感信息,如 API 密钥。考虑使用环境变量或安全存储。
- 错误处理:在生产环境中,应实现更健壮的错误处理和用户反馈机制。
- 文档:始终参考具体插件的官方文档,因为插件的 API 和初始化方法可能会随着版本更新而变化。
希望这些示例代码能帮助你在 Flutter 项目中集成并使用 bbaas
插件。如果你使用的是具体的后端服务插件,请参考该插件的官方文档进行调整。