Flutter支付集成插件tiptoppay_sdk的使用
Flutter支付集成插件tiptoppay_sdk的使用
支持的功能
- ✅ 检查卡号的有效性。
- ✅ 生成卡加密数据包。
- ✅ 显示3DS对话框。
开始使用
初始化Android环境
如果要在Android上显示3DS对话框,确保MainActivity
实现FlutterFragmentActivity
而不是FlutterActivity
。
import io.flutter.embedding.android.FlutterFragmentActivity
class MainActivity: FlutterFragmentActivity() {}
使用方法
检查卡号有效性
bool isValid = await TipTopPaySdk.isValidNumber(cardNumber);
检查卡有效期
bool isValid = await TipTopPaySdk.isValidExpireDate(cardNumber); // MM/yy
生成卡加密数据包
你需要从个人账户获取publicId,并且需要提供apiUrl(例如:https://api.tiptoppay.kz/
)。
final cryptogram = await TipTopPaySdk.createHexPacketFromData(
event.cardNumber,
event.expiryDate,
event.cvcCode,
Constants.MERCHANT_PUBLIC_ID,
Constants.API_URL
);
显示3DS表单并获取3DS验证结果
final result = await TipTopPaySdk.show3ds(
acsUrl,
transactionId,
paReq,
);
Apple Pay
创建TipTopPayApplePay实例
final applePay = TipTopPayApplePay();
检查Apple Pay是否可用
final isApplePayAvailable = await applePay.isApplePayAvailable();
请求支付
final paymentToken = await applePay.requestApplePayPayment(
merchantId: 'merchant.com.YOURDOMAIN',
currencyCode: 'KZT',
countryCode: 'KAZ',
products: [
{"name": "Red apple", "price": "170"},
{"name": "Mango", "price": "250.50"},
{"name": "Delivery", "price": "100"},
{"name": "Discount", "price": "-89.90"},
{"name": "Total", "price": "430.60"},
],
);
现在你可以使用paymentToken
通过加密数据进行支付。
Google Pay
创建TipTopPayGooglePay实例
在构造函数中传入Google Pay环境(测试或生产)。
final googlePay = TipTopPayGooglePay(GooglePayEnvironment.production);
检查Google Pay是否可用
final isGooglePayAvailable = await googlePay.isGooglePayAvailable();
请求支付
final result = await googlePay.requestGooglePayPayment(
price: '123.45',
currencyCode: 'KZT',
countryCode: 'KAZ',
merchantName: 'Example Merchant',
publicId: 'test_api_00000000000000000000002',
);
if (result != null) {
if (result.isSuccess) {
final paymentToken = result.token;
}
}
现在你可以使用paymentToken
通过加密数据进行支付。
示例代码
example/lib/main.dart
import 'package:tiptoppay_sdk_example/screens/checkout_screen.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
void dispose() {
super.dispose();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: CheckoutScreen(),
);
}
}
更多关于Flutter支付集成插件tiptoppay_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件tiptoppay_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
tiptoppay_sdk
是一个用于 Flutter 的支付集成插件,允许开发者在 Flutter 应用中集成 Tiptop 支付功能。以下是如何在 Flutter 项目中使用 tiptoppay_sdk
插件的详细步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 tiptoppay_sdk
插件的依赖。
dependencies:
flutter:
sdk: flutter
tiptoppay_sdk: ^1.0.0 # 请根据实际情况使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化 SDK
在你的 Flutter 应用中,首先需要初始化 tiptoppay_sdk
。通常你可以在 main.dart
或某个初始化函数中进行初始化。
import 'package:tiptoppay_sdk/tiptoppay_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 TiptopPay SDK
TiptopPay.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
environment: Environment.sandbox, // 或者 Environment.production
);
runApp(MyApp());
}
3. 创建支付订单
在需要发起支付的地方,你可以创建一个支付订单并调用支付方法。
void initiatePayment() async {
try {
// 创建支付订单
var paymentResponse = await TiptopPay.createPaymentOrder(
amount: 100, // 支付金额
currency: 'USD', // 货币类型
orderId: 'ORDER_123', // 你的订单ID
description: 'Payment for order #123', // 订单描述
);
// 处理支付响应
if (paymentResponse.status == 'success') {
// 支付成功
print('Payment successful: ${paymentResponse.transactionId}');
} else {
// 支付失败
print('Payment failed: ${paymentResponse.errorMessage}');
}
} catch (e) {
// 处理异常
print('Error during payment: $e');
}
}
4. 处理支付回调
在某些情况下,你可能需要处理支付回调,例如支付成功或失败后的操作。你可以通过监听支付状态来实现这一点。
void handlePaymentCallback() {
TiptopPay.onPaymentStatus.listen((status) {
if (status == 'success') {
// 支付成功
print('Payment successful');
} else if (status == 'failed') {
// 支付失败
print('Payment failed');
}
});
}
5. 处理支付结果
在支付完成后,你可能需要根据支付结果更新订单状态或显示相应的提示信息。
void checkPaymentStatus() async {
try {
var status = await TiptopPay.checkPaymentStatus(orderId: 'ORDER_123');
if (status == 'success') {
// 支付成功
print('Payment was successful');
} else if (status == 'pending') {
// 支付待处理
print('Payment is pending');
} else if (status == 'failed') {
// 支付失败
print('Payment failed');
}
} catch (e) {
// 处理异常
print('Error checking payment status: $e');
}
}