Flutter安全支付插件safepay_checkout的使用
Flutter安全支付插件safepay_checkout的使用
一个Flutter插件,用于无缝集成Safepay支付网关,实现安全高效的支付处理。此插件通过提供一个预构建的小部件来简化结账集成,从而处理所有支付操作。
安装
步骤1:添加依赖
首先,在你的pubspec.yaml
文件中添加以下依赖:
dependencies:
safepay_checkout: ^1.0.6
步骤2:导入包
在你想要使用的Dart文件中导入该包:
import 'package:safepay_checkout/safepay_payment_gateway.dart';
步骤3:添加结账小部件
将SafepayCheckout
小部件添加到你的屏幕中。此小部件负责整个支付流程。
SafepayCheckout(
tracker: 'your tracker token', // 你的追踪令牌
tbt: 'your authentication token', // 你的认证令牌
environment: SafePayEnvironment.sandbox, // 环境设置(例如:生产、沙盒)
successUrl: 'yourdomain.com', // 成功支付后的重定向URL
failUrl: 'yourfaildomain.com', // 支付失败后的重定向URL
onPaymentFailed: () {
// 支付失败
print('Payment cancelled');
},
onPaymentCompleted: () {
// 支付成功
print('Payment successful');
},
);
此代码会将Safepay支付网关添加到你的屏幕上,以启用支付处理。
参数
参数 | 数据类型 | 描述 |
---|---|---|
tracker |
String |
你的追踪令牌。 |
tbt |
String |
你的认证令牌。 |
environment |
SafePayEnvironment |
环境设置(例如:生产、沙盒)。 |
successUrl |
String |
成功支付后的重定向URL。 |
failUrl |
String |
支付失败后的重定向URL。 |
onPaymentFailed |
VoidCallback |
支付失败时触发的回调。 |
onPaymentCompleted |
VoidCallback |
支付成功完成时触发的回调。 |
要获取追踪令牌和认证令牌,请遵循以下指南: 获取令牌指南
全屏示例
如果你希望有一个完整的屏幕来处理支付,请查看以下示例。
Checkout.dart
创建一个名为Checkout.dart
的新文件,并导航到你的应用程序中的这个屏幕。这将处理支付逻辑并触发成功、失败或身份验证错误事件。
import 'package:flutter/material.dart';
import 'package:safepay_checkout/safepay_payment_gateway.dart';
class CheckoutScreen extends StatefulWidget {
final double amount; // 金额
final String publicKey; // 公钥
final String secretKey; // 秘钥
final String currency; // 货币
final SafePayEnvironment environment; // 环境
final String orderId; // 订单ID
final String successUrl; // 成功URL
final String failUrl; // 失败URL
const CheckoutScreen({
Key? key,
required this.amount,
required this.publicKey,
required this.secretKey,
required this.currency,
required this.environment,
required this.orderId,
required this.successUrl,
required this.failUrl,
}) : super(key: key);
[@override](/user/override)
State<CheckoutScreen> createState() => _CheckoutScreenState();
}
class _CheckoutScreenState extends State<CheckoutScreen> {
[@override](/user/override)
Widget build(BuildContext context) {
return SafepayCheckout(
tracker: 'your tracker token', // 追踪令牌
tbt: 'your authentication token', // 认证令牌
environment: SafePayEnvironment.sandbox, // 环境设置
successUrl: 'yourdomain.com', // 成功URL
failUrl: 'yourfaildomain.com', // 失败URL
onPaymentFailed: () {
// 支付失败
print('Payment cancelled');
},
onPaymentCompleted: () {
// 支付成功
print('Payment successful');
},
);
}
}
额外示例
要查看更多详细示例,可以参阅存储库中的example
文件夹以获取完整的集成。
完整示例
如果你想看到一个完整的例子,请查看以下代码:
main.dart
import 'package:example/test.dart'; // 假设这是你的测试文件
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: 'Safepay',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Safepay example'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0,
title: Text(widget.title),
centerTitle: true,
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const TestScreen()),
);
},
child: const Text(
'Checkout',
style: TextStyle(color: Colors.black, fontSize: 16),
),
),
],
),
),
);
}
}
更多关于Flutter安全支付插件safepay_checkout的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter安全支付插件safepay_checkout的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用safepay_checkout
插件进行安全支付的代码示例。假设你已经在pubspec.yaml
文件中添加了safepay_checkout
依赖,并运行了flutter pub get
来安装它。
首先,确保你的pubspec.yaml
文件中包含以下依赖项:
dependencies:
flutter:
sdk: flutter
safepay_checkout: ^latest_version # 请替换为实际的最新版本号
接下来,在你的Flutter项目中,你可以按照以下步骤使用safepay_checkout
插件:
- 导入插件
在你的Dart文件中导入safepay_checkout
插件:
import 'package:safepay_checkout/safepay_checkout.dart';
- 初始化支付配置
你需要配置支付所需的一些参数,比如公钥、环境(沙箱或生产)、支付金额等。以下是一个示例配置:
final SafePayConfiguration config = SafePayConfiguration(
publicKey: 'your_public_key_here', // 替换为你的公钥
environment: SafePayEnvironment.sandbox, // 或者 SafePayEnvironment.production
amount: 100.0, // 支付金额,单位通常是你的货币的最小单位(例如,对于美元,100.0代表1.00美元)
currencyCode: 'USD', // 货币代码
// 其他可选配置,如商户ID、商品描述等
);
- 启动支付流程
使用SafePayCheckout
类的startPayment
方法来启动支付流程:
void startPayment() async {
try {
final result = await SafePayCheckout.startPayment(
configuration: config,
onSuccess: (paymentResult) {
// 支付成功后的回调处理
print('Payment successful: ${paymentResult.toMap()}');
// 你可以在这里处理支付成功后的逻辑,比如更新订单状态
},
onError: (error) {
// 支付失败或取消后的回调处理
print('Payment error: $error');
// 你可以在这里处理支付失败或取消的逻辑
},
);
// result 通常不需要处理,除非你需要检查某些特定的状态码或信息
} catch (e) {
// 处理异常,比如插件未正确初始化等
print('Error starting payment: $e');
}
}
- 在UI中触发支付
最后,在你的UI组件中(比如一个按钮的点击事件处理器)调用startPayment
方法:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('SafePay Checkout Example'),
),
body: Center(
child: ElevatedButton(
onPressed: startPayment,
child: Text('Start Payment'),
),
),
),
);
}
}
这个示例展示了如何在Flutter应用中使用safepay_checkout
插件来启动一个支付流程。请确保你已经替换了示例代码中的占位符(如公钥)为实际的值,并根据你的业务需求调整支付配置和回调处理逻辑。