Flutter全能开发插件tonder_sdk_full的使用
Flutter全能开发插件tonder_sdk_full的使用
Tonder Full SDK 帮助你在自己的 Flutter 应用程序中集成 Tonder 提供的服务。
安装
-
运行以下命令:
flutter pub get full_sdk
-
在
android/build.gradle
文件中添加以下内容:maven { url 'https://maven.pkg.github.com/skyflowapi/skyflow-android-sdk' credentials { username = 'username' password = 'password' } }
-
在
android.gradle.properties
文件中添加以下内容:android.useAndroidX=true
示例代码
import 'package:flutter/material.dart';
import 'package:tonder_sdk_full/tonder_sdk_full.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final TonderFullSDK _fullPlugin = TonderFullSDK();
[@override](/user/override)
void initState() {
super.initState();
if (_fullPlugin != null) _fullPlugin.removeCheckout();
const apiKey = "00d17d61e9240c6e0611fbdb1558e636ed6389db";
const returnUrl = "http://localhost:8100/tabs/tab2";
_fullPlugin = InlineCheckout(
platforms: null,
apiKeyTonder: apiKey,
returnUrl: returnUrl,
successUrl: returnUrl,
renderPaymentButton: false,
);
Map<String, dynamic> customerData = {
"customer": {
"firstName": "Pedro",
"lastName": "Perez",
"country": "Finlandia",
"street": "The street",
"city": "The city",
"state": "The state",
"postCode": "22222",
"email": "mail@gmail.com",
"phone": "53453453453"
},
"cart": {
"total": 250,
"items": [
{
"description": "Test product description",
"quantity": 1,
"price_unit": 250,
"discount": 25,
"taxes": 12,
"product_reference": 12,
"name": "Test product",
"amount_total": 250
}
]
}
};
_fullPlugin.setPaymentData(customerData);
_fullPlugin.setCartTotal(0);
_fullPlugin.setCustomerEmail("mail@gmail.com");
// 注入支付表单
Future<void> injectCheckout() async {
await _fullPlugin.injectCheckout();
}
// 验证 3DS 交易
Future<Map<String, dynamic>>? verify3dsTransaction() async {
return await _fullPlugin.verify3dsTransaction();
}
injectCheckout().then((_) {
verify3dsTransaction().then((Map<String, dynamic>? response) {
if (response != null) {
if (response["status"] == "Success") {
// 成功处理逻辑
} else if (response["status"] == "Failed") {
// 失败处理逻辑
}
}
setState(() {});
});
});
// 构建 UI
return Scaffold(
body: SizedBox(
height: 1200,
child: _fullPlugin.cardTemplate ?? Text("Loading card template"),
),
);
}
}
更多关于Flutter全能开发插件tonder_sdk_full的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter全能开发插件tonder_sdk_full的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
tonder_sdk_full
是一个为 Flutter 开发者提供的全能开发插件,旨在简化开发流程,提供丰富的功能模块,帮助开发者快速构建高质量的 Flutter 应用。以下是关于如何使用 tonder_sdk_full
插件的详细指南。
1. 安装插件
首先,你需要在 pubspec.yaml
文件中添加 tonder_sdk_full
依赖。
dependencies:
flutter:
sdk: flutter
tonder_sdk_full: ^1.0.0 # 请使用最新版本
然后,运行 flutter pub get
来安装插件。
2. 初始化 SDK
在使用 tonder_sdk_full
之前,你需要在应用的入口处初始化 SDK。通常,你可以在 main.dart
文件中进行初始化。
import 'package:flutter/material.dart';
import 'package:tonder_sdk_full/tonder_sdk_full.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Tonder SDK
await TonderSDK.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
environment: Environment.production, // 选择环境:production 或 sandbox
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
3. 使用 SDK 功能模块
tonder_sdk_full
提供了多个功能模块,开发者可以根据需求调用相应的模块。以下是几个常用的功能模块示例:
3.1 用户认证
import 'package:tonder_sdk_full/tonder_sdk_full.dart';
class MyHomePage extends StatelessWidget {
Future<void> _login() async {
try {
final user = await TonderSDK.auth.login(
email: 'user@example.com',
password: 'password',
);
print('User logged in: ${user.id}');
} catch (e) {
print('Login failed: $e');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Tonder SDK Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _login,
child: Text('Login'),
),
),
);
}
}
3.2 数据存储
import 'package:tonder_sdk_full/tonder_sdk_full.dart';
class MyHomePage extends StatelessWidget {
Future<void> _saveData() async {
try {
await TonderSDK.storage.save(
key: 'myKey',
value: 'myValue',
);
print('Data saved successfully');
} catch (e) {
print('Failed to save data: $e');
}
}
Future<void> _loadData() async {
try {
final value = await TonderSDK.storage.load(key: 'myKey');
print('Loaded data: $value');
} catch (e) {
print('Failed to load data: $e');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Tonder SDK Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: _saveData,
child: Text('Save Data'),
),
ElevatedButton(
onPressed: _loadData,
child: Text('Load Data'),
),
],
),
),
);
}
}
3.3 网络请求
import 'package:tonder_sdk_full/tonder_sdk_full.dart';
class MyHomePage extends StatelessWidget {
Future<void> _fetchData() async {
try {
final response = await TonderSDK.network.get('https://api.example.com/data');
print('Response data: ${response.data}');
} catch (e) {
print('Failed to fetch data: $e');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Tonder SDK Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _fetchData,
child: Text('Fetch Data'),
),
),
);
}
}
4. 错误处理
在使用 tonder_sdk_full
时,可能会遇到各种错误。建议在使用每个功能模块时,使用 try-catch
块来捕获和处理异常。
try {
// 调用 SDK 功能
} catch (e) {
print('Error: $e');
// 处理错误
}
5. 释放资源
在某些情况下,你可能需要释放 SDK 占用的资源。你可以在应用退出时调用 TonderSDK.dispose()
来释放资源。
[@override](/user/override)
void dispose() {
TonderSDK.dispose();
super.dispose();
}