Flutter区块链支付插件terra_dart_onchain_payments的使用
Flutter区块链支付插件terra_dart_onchain_payments的使用
轻量级的支付管理库,适用于terra生态系统。支持LUNC与LUNA区块链的支付。
探索文档 »
示例应用
·
API参考
·
Pub包
·
GitHub
内部管理区块链交易所需的燃烧税的gas估算,使得开发者更容易在LUNC/LUNA区块链上进行支付。
特性
- 用Dart编写,带有类型定义
- 适用于Flutter和Dart生态系统,在浏览器和移动解决方案中使用,为在Terra生态系统中构建的应用提供支持
- 使部署到应用商店的支付管理变得更加简单
安装与配置
从 Pub 获取最新版本:
dart pub add terra_dart_onchain_payments
使用方法
该插件可用于移动端和Web开发人员,或SDK开发人员希望扩展Terra平台。
管理支付
void verifyCustomerBalance() {
// 客户钱包的恢复词,将用于支付
String customerRecoveryWords = "notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius";
// 配置您的支付管理器
// 设置要针对的目标区块链(在此例中为经典)
var paymentsManager = PaymentsManager()
.configureBlockchain(env: TerraEnvironment.classic)
.configureBusinessWallet(
businessWallet) // 配置您的业务钱包
.configureCustomerWallet(
customerRecoveryWords); // 配置客户钱包
var simulation = await paymentsManager.getTotalFundsInCustomerWallet();
}
void processPaymentForTerra() {
// 客户支付将转入的钱包地址
String businessWallet = "terra17lmam6zguazs5q5u6z5mmx76uj63gldnse2pdp";
// 客户钱包的恢复词,将用于支付
String customerRecoveryWords = "notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius";
// 配置您的支付管理器
// 设置要针对的目标区块链(在此例中为经典)
var paymentsManager = PaymentsManager()
.configureBlockchain(env: TerraEnvironment.classic)
.configureBusinessWallet(
businessWallet) // 配置您的业务钱包
.configureCustomerWallet(
customerRecoveryWords); // 配置客户钱包
// 客户被收取100 LUNC
var transaction = await paymentsManager.chargeCustomer(100);
}
许可证
本软件根据MIT许可证授权。完整的许可信息见LICENSE。
版权所有 © 2022 TerraMystics。
示例代码
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是你的应用的根。它是有状态的,意味着它有一个状态对象(在下面定义),包含影响其外观的字段。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// 这是你的应用的主题。
//
// 尝试运行你的应用。你会看到应用有一个蓝色工具栏。然后,不退出应用,尝试改变下面的primarySwatch为Colors.green,并调用"热重载"(在你运行"flutter run"的控制台按"r",或直接保存更改来"热重载"在Flutter IDE中)。
// 注意计数器并没有重置回零;应用没有重启。
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// 这个小部件是你的应用的主页。它是有状态的,意味着它有一个状态对象(在下面定义),包含影响其外观的字段。
// 这个类是状态的配置。它持有由父组件(在这个例子中是App小部件)提供的值(在这个例子中是标题),并由build方法使用。在小部件子类中,字段总是标记为"final"。
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// 这次对setState的调用告诉Flutter框架某些东西已经改变,这导致它重新运行下面的build方法,以便显示可以反映更新后的值。如果我们不调用setState()改变_counter,那么build方法就不会再次被调用,因此看起来什么都不会发生。
_counter++;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
// 每次调用setState时,此方法都会重新运行。
//
// Flutter框架已被优化为使重新运行构建方法变得快速,因此你可以仅仅重建任何需要更新的东西,而不是单独更改各个小部件。
return Scaffold(
appBar: AppBar(
// 这里我们取MyHomePage对象的值,这是由App.build方法创建的,并用于设置我们的appbar标题。
title: Text(widget.title),
),
body: Center(
// Center是一个布局小部件。它只有一个孩子,并将其放置在父级的中间。
child: Column(
// Column也是一个布局小部件。它接受一个孩子列表,并垂直排列它们。默认情况下,它水平调整自身以适应其孩子,并尽可能高,以匹配其父级。
//
// 调用"调试绘制"(在控制台按"p",选择Android Studio中的"切换调试绘制"动作,或Visual Studio Code中的"切换调试绘制"命令)可以看到每个小部件的线框图。
//
// Column有许多属性来控制它如何调整大小和定位其孩子。在这里我们使用mainAxisAlignment来垂直居中孩子;主轴是垂直方向,因为Columns是垂直的(交叉轴将是水平的)。
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'你已经按了按钮这么多次:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: '增加',
child: const Icon(Icons.add),
), // 这个逗号使自动格式化更美观。
);
}
}
更多关于Flutter区块链支付插件terra_dart_onchain_payments的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter区块链支付插件terra_dart_onchain_payments的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
terra_dart_onchain_payments
是一个用于在 Flutter 应用中集成 Terra 区块链支付的插件。它允许开发者轻松地在应用中处理 Terra 区块链上的支付交易。以下是如何使用这个插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 terra_dart_onchain_payments
插件的依赖。
dependencies:
flutter:
sdk: flutter
terra_dart_onchain_payments: ^最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化插件
在你的 Dart 代码中,首先需要导入插件并初始化它。
import 'package:terra_dart_onchain_payments/terra_dart_onchain_payments.dart';
void main() {
// 初始化插件
TerraDartOnchainPayments.initialize(
network: TerraNetwork.mainnet, // 或者 TerraNetwork.testnet
walletAddress: '你的钱包地址',
mnemonic: '你的助记词',
);
}
3. 创建支付交易
你可以使用插件来创建一个支付交易。以下是一个简单的示例:
Future<void> makePayment() async {
try {
final paymentResult = await TerraDartOnchainPayments.sendPayment(
recipientAddress: '接收方钱包地址',
amount: '1000000', // 以 uusd (micro USD) 为单位
memo: '支付备注', // 可选
);
print('支付成功: ${paymentResult.txhash}');
} catch (e) {
print('支付失败: $e');
}
}
4. 处理交易结果
sendPayment
方法返回一个包含交易哈希(txhash
)的对象。你可以使用这个哈希来查询交易的状态或详细信息。
Future<void> checkTransactionStatus(String txhash) async {
try {
final txStatus = await TerraDartOnchainPayments.getTransactionStatus(txhash);
print('交易状态: ${txStatus.status}');
} catch (e) {
print('查询交易状态失败: $e');
}
}
5. 查询余额
你还可以查询钱包的余额。
Future<void> checkBalance() async {
try {
final balance = await TerraDartOnchainPayments.getBalance();
print('钱包余额: $balance uusd');
} catch (e) {
print('查询余额失败: $e');
}
}