Flutter集成Squad SDK插件flutter_squad_sdk的使用
Flutter集成Squad SDK插件flutter_squad_sdk的使用
简介
这是一个Flutter包,它使你能够在Android和iOS应用程序中集成Squad支付网关的功能。它也适合使用Firebase或Supabase作为后端的开发者。你可以在你的Flutter应用中发起支付并完成结账。
iOS预览
Android预览
功能
- 发起支付并结账
- 如果不从后端服务器生成,则仅结账
- 使用交易参考验证支付
开始使用
要开始使用,请确保在https://squadco.com/ 创建一个账户。如果你需要测试账户,可以创建一个在https://sandbox.squadco.com/login 的账户,仅用于开发。
使用方法
要发起支付并结账,你需要调用SquadPay类中的initializeAndCheckout()函数。
//发起支付并结账
SquadPay.initializeAndCheckout(
context,
Environment.test,
"<-请输入您的Secret Key这里->", //您的Secret Key可以在squadco.com仪表板上找到
InitialPayload(
amount: 55000,
email: "nalz@gmail.com",
currency: "NGN",
initiateType: "inline",
transactionRef: SquadPay.generateTransactionRef(16), //生成随机交易参考
callbackUrl: "https://google.com",
)
);
如果从其他来源(例如后端服务器)初始化支付后进行结账,可以调用checkOut()函数:
//仅结账
SquadPay.checkOut(
context,
'<-请输入您的结账URL这里->',
'<-请输入您的回调URL这里->'
);
要验证交易是否成功,可以使用以下代码片段:
//验证交易
final transactionResponse = await SquadPay.verifyTransaction(
Environment.test,
"<-请输入您的SECRET KEY这里->",
"yVJ2KXwvtc" // 交易参考
);
完整示例Demo
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'package:flutter_squad_sdk/flutter_squad_sdk.dart';
import 'package:dio/dio.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Squad SDK Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Squad SDK Demo'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String message = "";
void initiatePaymentMethod() {
SquadPay.initializeAndCheckout(
context,
Environment.test,
"<-请输入您的SECRET KEY这里->",
InitialPayload(
amount: 55000,
email: "nalz@gmail.com",
currency: "NGN",
initiateType: "inline",
transactionRef: SquadPay.generateTransactionRef(16),
callbackUrl: "https://google.com",
)
);
}
void checkOutMethod() async {
String result = await SquadPay.checkOut(context,
"https://checkout.paystack.com/25tw9jvmphdlbkt", "https://google.com");
message = result;
}
void verifyPayment() async {
try {
final transactionResponse = await SquadPay.verifyTransaction(
Environment.test,
"<-请输入您的SECRET KEY这里->",
"yVJ2KXwvtc" // 交易参考
);
setState(() {
message = transactionResponse.data!.transactionStatus!;
});
} on DioException catch (e) {
message = DioExceptions.fromDioError(e).toString();
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
ElevatedButton(
onPressed: initiatePaymentMethod,
child: const Text("初始化支付")
),
ElevatedButton(
onPressed: checkOutMethod,
child: const Text("结账")
),
ElevatedButton(
onPressed: verifyPayment,
child: const Text("验证交易")
),
],
),
),
);
}
}
更多关于Flutter集成Squad SDK插件flutter_squad_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Squad SDK插件flutter_squad_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
要在Flutter应用中集成Squad SDK插件 flutter_squad_sdk
,您需要按照以下步骤进行操作:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 flutter_squad_sdk
依赖:
dependencies:
flutter:
sdk: flutter
flutter_squad_sdk: ^1.0.0 # 请确保使用最新版本
然后运行 flutter pub get
以获取依赖。
2. 初始化 SDK
在您的Flutter应用中,您需要在应用启动时初始化Squad SDK。通常,您可以在 main.dart
文件中进行初始化:
import 'package:flutter/material.dart';
import 'package:flutter_squad_sdk/flutter_squad_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Squad SDK
await SquadSDK.initialize(
apiKey: 'YOUR_API_KEY',
environment: SquadEnvironment.sandbox, // 或 SquadEnvironment.production
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Squad SDK Demo',
home: HomeScreen(),
);
}
}
3. 使用 SDK 功能
在应用的其他部分,您可以使用Squad SDK提供的功能。例如,启动支付流程:
import 'package:flutter/material.dart';
import 'package:flutter_squad_sdk/flutter_squad_sdk.dart';
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Squad SDK Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
try {
// 启动支付流程
final result = await SquadSDK.startPayment(
amount: 1000, // 金额(以最小单位,例如分)
email: 'user@example.com',
currency: 'NGN', // 货币代码
reference: 'unique_reference', // 唯一参考号
);
if (result.status == SquadPaymentStatus.success) {
// 支付成功处理
print('Payment successful: ${result.message}');
} else {
// 支付失败处理
print('Payment failed: ${result.message}');
}
} catch (e) {
// 异常处理
print('Error: $e');
}
},
child: Text('Make Payment'),
),
),
);
}
}
4. 处理支付结果
在 startPayment
方法中,您可以根据返回的 SquadPaymentResult
对象来处理支付结果。SquadPaymentResult
包含支付状态和消息。
5. 配置环境
在初始化SDK时,您可以选择使用 SquadEnvironment.sandbox
(用于测试)或 SquadEnvironment.production
(用于生产环境)。确保在发布应用时使用生产环境。
6. 其他功能
flutter_squad_sdk
可能还提供了其他功能,例如查询交易状态、验证支付等。请参考官方文档以获取更多详细信息。
7. 调试与测试
在开发过程中,您可以使用Squad的沙盒环境进行测试。确保您使用的是测试API密钥和测试账户。
8. 发布应用
在发布应用之前,请确保您已经切换到生产环境,并且使用生产API密钥。
9. 处理错误和异常
在使用SDK时,务必处理可能出现的错误和异常,以确保应用在出现问题时能够优雅地处理。
10. 参考文档
请参考 flutter_squad_sdk
的官方文档以获取更多详细信息和高级用法。