Flutter支付集成插件twocheckout_flutter的使用

Flutter支付集成插件twocheckout_flutter的使用

2Checkout Flutter SDK

pub package license Code-Dart Code-Flutter

2Checkout Flutter SDK 封装了2checkout-android-sdk2checkout-ios-sdk,使您能够在原生Android和iOS应用中构建令人愉悦的支付体验。我们提供了强大的且可定制的UI屏幕、小部件和方法通道,以便您可以直接访问原生功能,从而开箱即用地收集用户的支付详情。

2Checkout Flutter SDK 设计得易于集成到您的应用中。通过2Checkout Flutter SDK,您可以轻松地对卡信息进行标记化处理,处理3D安全验证,并授权PayPal付款。

Alt Text

特性

  • 简化安全性:我们使您能够轻松收集敏感数据(如信用卡号)并保持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

1 回复

更多关于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官网获取你的privateKeysellerId

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,它用于显示支付页面。

注意事项

  1. 安全性:确保你的私钥和卖家ID是安全的,不要将它们硬编码在客户端代码中。考虑使用环境变量或安全的存储机制。
  2. 支付回调:处理支付成功和取消后的回调URL,确保用户能够正确地返回到你的应用,并根据支付结果更新应用状态。
  3. 错误处理:添加适当的错误处理逻辑,以处理支付过程中的各种异常情况。

这样,你就可以在Flutter应用中集成并使用TwoCheckout进行支付了。

回到顶部