Flutter支付集成插件twocheckout_flutter的使用
Flutter支付集成插件twocheckout_flutter的使用
2Checkout Flutter SDK
2Checkout Flutter SDK 封装了2checkout-android-sdk 和 2checkout-ios-sdk,使您能够在原生Android和iOS应用中构建令人愉悦的支付体验。我们提供了强大的且可定制的UI屏幕、小部件和方法通道,以便您可以直接访问原生功能,从而开箱即用地收集用户的支付详情。
2Checkout Flutter SDK 设计得易于集成到您的应用中。通过2Checkout Flutter SDK,您可以轻松地对卡信息进行标记化处理,处理3D安全验证,并授权PayPal付款。
特性
- 简化安全性:我们使您能够轻松收集敏感数据(如信用卡号)并保持PCI合规。这意味着敏感数据将直接发送到2Checkout(现为Verifone),而不是通过您的服务器。有关更多信息,请参阅我们的集成安全性指南。
- 支付方式:接受更多支付方式有助于您的业务扩展全球范围并提高结账转化率。
- SCA就绪:如果需要遵守强客户身份验证,则SDK会自动执行原生3D安全认证。
- 原生UI:我们提供原生屏幕和元素,以在Android和iOS上安全地收集支付详情。
- 预构建支付UI:了解如何集成Payment Sheet,这是移动应用的新预构建支付UI。此预构建UI让您开箱即用地接受卡片和PayPal。
支持的支付方式
- 信用卡标记化
- 3D安全授权
- PayPal付款授权
推荐使用场景
如果您正在应用内销售数字产品或服务(例如订阅、游戏货币、游戏关卡、访问高级内容或解锁完整版本),则必须使用应用商店的内置购买API。有关更多信息,请参阅Apple和Google的指南。对于所有其他场景,您可以使用此SDK通过2Checkout处理付款。
要求
Android要求
- 使用Android 4.0(API级别19)及以上版本。
- 使用Kotlin版本1.7.0及以上版本。
- 确保您使用的是最新的Android Gradle构建工具版本。
- 使用相应的最新Gradle版本。
- 记住,在进行上述更改后重新构建应用,因为这些更改可能不会在热重载时生效。
iOS要求
- Xcode 10.2及以上版本
- Swift 5.0及以上版本
- iOS 12及以上版本
如果您在设置Android包时遇到困难,请加入讨论以获得支持。
安装
要安装2Checkout Flutter插件,请使用以下Dart包命令:
dart pub add twocheckout_flutter
Dart API
该库提供了几个用于处理与2Checkout相关操作的方法:
- 支付表单将显示时的回调。
void paymentFormWillShow();
- 支付表单将关闭时的回调。
void paymentFormWillClose();
- 支付方式被选定时的回调。
void paymentMethodSelected(PaymentMethodType paymentMethod);
- 支付过程失败时的错误回调。
void paymentFailedWithError(String message);
- 支付表单完成时的回调。
void onPaymentFormComplete(PaymentFormResult paymentFormResult);
- 支付被取消时的回调。
void authorizePaymentDidCancel();
- 3D验证完成后时的回调。
void authorizePaymentDidCompleteAuthorizing(Map<dynamic, dynamic> result);
使用
初始化2Checkout SDK
_twoCheckoutFlutterPlugin.setTwoCheckoutCredentials(secretKey: "Your_Key", merchantCode: "Your_Code");
启动2Checkout支付流程
_twoCheckoutFlutterPlugin.showPaymentMethods(price: 10.5, currency: "USD", local: "en");
使用authorizePaymentWithOrderResponse方法授权卡3DS或PayPal付款
/// 使用post订单响应授权付款。
/// 如果需要根据post订单API响应中的以下键授权付款:
/// 信用卡:response -> PaymentDetails -> PaymentMethod -> Authorize3DS存在
/// PayPal:response -> PaymentDetails -> PaymentMethod -> RedirectURL存在
///
/// @param url The Redirect URL for payment authorization. --> 信用卡:Authorize3DS.getString("Href"), PayPal: PaymentMethod.getString("RedirectURL")
/// @param parameters --> 信用卡:['avng8apitoken' : 'Authorize3DS -> Params -> avng8apitoken'], PayPal: [:] 无选项
/// @param successReturnUrl 成功付款后重定向的URL(默认为空字符串)。
/// @param cancelReturnUrl 支付被取消时重定向的URL(默认为空字符串)。
///
_twoCheckoutFlutterPlugin.authorizePaymentWithOrderResponse(
String url, Map<dynamic, dynamic> parameters,
{String successReturnUrl = "", String cancelReturnUrl = ""});
不带UI的卡标记化
一个可用于基于提供的卡数据生成支付令牌的方法。
TokenResult result = await _twoCheckoutFlutterPlugin.createToken(name: "CARD_HOLDER_NAME", creditNumber: "CARD_NUMBER", cvv: "xxx", expiryDate: "xx/xx");
更多关于Flutter支付集成插件twocheckout_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件twocheckout_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中集成并使用twocheckout_flutter
插件的示例代码。这个插件允许你使用TwoCheckout支付网关进行支付集成。
首先,确保你已经在pubspec.yaml
文件中添加了twocheckout_flutter
依赖:
dependencies:
flutter:
sdk: flutter
twocheckout_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,你可以按照以下步骤在你的Flutter应用中使用这个插件:
1. 初始化TwoCheckout客户端
在你的主应用文件(例如main.dart
)中,初始化TwoCheckout客户端。你需要在TwoCheckout官网获取你的privateKey
和sellerId
。
import 'package:flutter/material.dart';
import 'package:twocheckout_flutter/twocheckout_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter TwoCheckout Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
TwoCheckout? _twoCheckout;
@override
void initState() {
super.initState();
_initializeTwoCheckout();
}
void _initializeTwoCheckout() async {
String privateKey = '你的私钥';
String sellerId = '你的卖家ID';
_twoCheckout = await TwoCheckout.init(privateKey, sellerId);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('TwoCheckout Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _openCheckout,
child: Text('Open Checkout'),
),
),
);
}
void _openCheckout() async {
if (_twoCheckout != null) {
var token = '你的商品token'; // 从TwoCheckout后台获取
var amount = 100.0; // 商品金额
var currency = 'USD'; // 商品货币类型
var successUrl = 'https://yourwebsite.com/success'; // 支付成功后的回调URL
var cancelUrl = 'https://yourwebsite.com/cancel'; // 支付取消后的回调URL
try {
var result = await _twoCheckout!.createOrder(
token: token,
amount: amount,
currency: currency,
successUrl: successUrl,
cancelUrl: cancelUrl,
);
// 处理支付结果,通常这里会打开一个WebView来显示支付页面
if (result.success) {
// 打开支付页面
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => WebViewPage(url: result.url),
),
);
} else {
// 处理错误
print('Error creating order: ${result.message}');
}
} catch (e) {
print('Error: $e');
}
}
}
}
class WebViewPage extends StatelessWidget {
final String url;
WebViewPage({required this.url});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Payment Page'),
),
body: WebView(
initialUrl: url,
javascriptMode: JavascriptMode.unrestricted,
),
);
}
}
2. 添加WebView支持
由于支付过程通常需要在WebView中完成,你需要添加webview_flutter
依赖来显示支付页面。在pubspec.yaml
中添加以下依赖:
dependencies:
webview_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后,在需要的地方导入并使用WebView
:
import 'package:webview_flutter/webview_flutter.dart';
上面的代码中已经包含了WebViewPage
,它用于显示支付页面。
注意事项
- 安全性:确保你的私钥和卖家ID是安全的,不要将它们硬编码在客户端代码中。考虑使用环境变量或安全的存储机制。
- 支付回调:处理支付成功和取消后的回调URL,确保用户能够正确地返回到你的应用,并根据支付结果更新应用状态。
- 错误处理:添加适当的错误处理逻辑,以处理支付过程中的各种异常情况。
这样,你就可以在Flutter应用中集成并使用TwoCheckout进行支付了。