Flutter埃塞俄比亚货币转换插件flutter_telebirr的使用
Flutter埃塞俄比亚货币转换插件flutter_telebirr的使用
1. 插件简介
flutter_telebirr
是一个用于集成Telebirr支付API的Flutter SDK。通过这个插件,你可以轻松地在Flutter应用中实现Telebirr支付功能。
2. 功能特性
- 获取支付URL:通过Telebirr SDK API获取支付URL (
toPayUrl
),用户可以通过该URL完成支付。
3. 入门指南
3.1 必要的密钥
为了使用此插件,你需要从Telebirr获取以下密钥:
appId
: 应用IDappKey
: 应用密钥publicKey
: 公钥test url
: 测试模式下的URL(可选)
3.2 添加依赖
在你的 pubspec.yaml
文件中添加 flutter_telebirr
依赖:
dependencies:
flutter_telebirr: ^0.0.4
3.3 配置网络权限
为了让应用能够访问Telebirr API,你需要为Android和iOS配置网络权限。
3.3.1 Android
在 AndroidManifest.xml
文件中添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
如果你需要使用Telebirr的测试URL,请确保在 application
标签中添加以下属性:
<application ... android:usesCleartextTraffic="true">
3.3.2 iOS
在 Info.plist
文件中添加以下内容:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
4. 使用方法
4.1 配置Telebirr支付
在使用Telebirr支付之前,你需要先进行配置。如果使用测试模式,请确保传递Telebirr提供的测试URL,并且不要在URL末尾包含 /toTradeSDKPay
,而是使用如下格式:http://<IP>:<PORT>/service-openup
。
import 'package:flutter_telebirr/flutter_telebirr.dart';
void configureTelebirr() {
TelebirrPayment.instance.configure(
publicKey: 'your_public_key',
appId: '<appId>',
appKey: "<appKey>",
notifyUrl: "https://localhost/notifyUrl", // 回调URL
shortCode: "<shortCode>", // 商户短码
merchantDisplayName: "Organization name", // 商户显示名称
mode: Mode.test, // 设置为测试模式
testUrl: 'http://<IP>:<PORT>/service-openup', // 测试URL
);
}
4.2 发起支付
配置完成后,你可以通过调用 startPayment
方法发起支付请求,并传递商品名称和总金额。
Future<void> startPayment() async {
try {
final response = await TelebirrPayment.instance.startPayment(
itemName: "Goods name", // 商品名称
totalAmount: "10", // 总金额
);
if (response != null && response.isSuccess) {
// 支付成功,获取支付URL
String toPayUrl = response.data?.toPayUrl ?? '';
print('支付URL: $toPayUrl');
// 你可以使用WebView或其他方式加载支付URL
// 例如:
// launchUrl(Uri.parse(toPayUrl));
} else {
print('支付失败: ${response.message}');
}
} catch (e) {
print('支付过程中发生错误: $e');
}
}
4.3 完整示例代码
以下是一个完整的示例代码,展示了如何在Flutter应用中集成Telebirr支付功能。
import 'package:flutter/material.dart';
import 'package:flutter_telebirr/flutter_telebirr.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Telebirr Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: Home(),
);
}
}
class Home extends StatefulWidget {
[@override](/user/override)
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
[@override](/user/override)
void initState() {
super.initState();
// 配置Telebirr支付
configureTelebirr();
}
void configureTelebirr() {
TelebirrPayment.instance.configure(
publicKey: 'your_public_key',
appId: '<appId>',
appKey: "<appKey>",
notifyUrl: "https://localhost/notifyUrl",
shortCode: "<shortCode>",
merchantDisplayName: "Organization name",
mode: Mode.test,
testUrl: 'http://<IP>:<PORT>/service-openup',
);
}
Future<void> startPayment() async {
try {
final response = await TelebirrPayment.instance.startPayment(
itemName: "Goods name",
totalAmount: "10",
);
if (response != null && response.isSuccess) {
String toPayUrl = response.data?.toPayUrl ?? '';
print('支付URL: $toPayUrl');
// 你可以使用WebView或其他方式加载支付URL
// 例如:
// launchUrl(Uri.parse(toPayUrl));
} else {
print('支付失败: ${response.message}');
}
} catch (e) {
print('支付过程中发生错误: $e');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Telebirr支付示例'),
),
body: Center(
child: ElevatedButton(
onPressed: startPayment,
child: Text('发起支付'),
),
),
);
}
}
更多关于Flutter埃塞俄比亚货币转换插件flutter_telebirr的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter埃塞俄比亚货币转换插件flutter_telebirr的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,我可以为你提供一个关于如何在Flutter应用中使用flutter_telebirr
插件进行埃塞俄比亚货币转换的代码案例。flutter_telebirr
插件允许你获取埃塞俄比亚比尔(ETB)与其他货币的汇率并进行转换。
首先,确保你已经在pubspec.yaml
文件中添加了flutter_telebirr
依赖:
dependencies:
flutter:
sdk: flutter
flutter_telebirr: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
以下是一个简单的Flutter应用示例,展示如何使用flutter_telebirr
插件获取汇率并进行货币转换:
import 'package:flutter/material.dart';
import 'package:flutter_telebirr/flutter_telebirr.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String? _fromCurrencyCode;
String? _toCurrencyCode;
double? _amount;
double? _convertedAmount;
String? _error;
final TelebirrClient _telebirrClient = TelebirrClient();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Ethiopian Birr Currency Converter'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
decoration: InputDecoration(labelText: 'From Currency Code'),
keyboardType: TextInputType.text,
onChanged: (value) {
setState(() {
_fromCurrencyCode = value;
});
},
),
SizedBox(height: 16),
TextField(
decoration: InputDecoration(labelText: 'To Currency Code'),
keyboardType: TextInputType.text,
onChanged: (value) {
setState(() {
_toCurrencyCode = value;
});
},
),
SizedBox(height: 16),
TextField(
decoration: InputDecoration(labelText: 'Amount'),
keyboardType: TextInputType.number,
onChanged: (value) {
setState(() {
_amount = double.tryParse(value);
});
},
),
SizedBox(height: 32),
ElevatedButton(
onPressed: () async {
setState(() {
_error = null;
_convertedAmount = null;
});
if (_fromCurrencyCode == null || _toCurrencyCode == null || _amount == null) {
setState(() {
_error = 'All fields are required.';
});
return;
}
try {
final rate = await _telebirrClient.getExchangeRate(_fromCurrencyCode!, _toCurrencyCode!);
setState(() {
_convertedAmount = _amount! * rate;
});
} catch (e) {
setState(() {
_error = e.toString();
});
}
},
child: Text('Convert'),
),
SizedBox(height: 16),
if (_error != null) Text(
'Error: $_error',
style: TextStyle(color: Colors.red),
),
if (_convertedAmount != null) Text(
'${_amount!} $_fromCurrencyCode! = ${_convertedAmount!.toStringAsFixed(2)} $_toCurrencyCode!',
style: TextStyle(fontSize: 20),
),
],
),
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,允许用户输入货币代码和金额,并通过点击“Convert”按钮来获取汇率并进行转换。TelebirrClient
的getExchangeRate
方法用于获取两种货币之间的汇率。
注意:
- 你需要确保网络连接正常,因为
flutter_telebirr
插件需要从远程服务器获取汇率数据。 - 汇率数据可能会随时间变化,因此转换结果可能不是实时的。
- 插件的具体实现和API可能会随着版本更新而变化,请参考最新的
flutter_telebirr
文档以获取最新的使用方法。