Flutter支付集成插件sumup_sdk_wrapper的使用

Flutter支付集成插件sumup_sdk_wrapper的使用

sumup_sdk_wrapper

目前此项目不再维护,因为原始项目已更新。请改用sumup

Flutter包装器,用于使用最新的SumUp SDK。基于sumup

连接到SumUp终端,登录并在Android上接受卡支付。

前提条件

  1. 通过SumUp的国家网站注册商户账户(或收到测试账户)。
  2. 收到SumUp卡终端:Air、Air Lite、PIN+终端、Chip & Signature读卡器、SumUp Air Register、Solo或Solo Lite(Solo和Solo Lite当前处于测试阶段)。
  3. 通过SumUp开发者仪表板请求访问密钥并注册您的应用ID。
  4. Android最低SDK版本为23或更高。

安装

pubspec.yaml文件中添加sumup_sdk_wrapper

dependencies:
  sumup_sdk_wrapper:

导入sumup

import 'package:sumup_sdk_wrapper/sumup_sdk_wrapper.dart';

开始使用

初始化SumUp SDK

SumupSdkWrapper.init(affiliateKey);

登录

SumupSdkWrapper.login();

或者使用令牌登录:

SumupSdkWrapper.loginWithToken(token);

打开设置页面

SumupSdkWrapper.openSettings();

准备终端进行结账

SumupSdkWrapper.prepareForCheckout();

完成交易

var payment = SumupPayment(
    title: 'Test payment', // 支付标题
    total: 1.2,            // 总金额
    currency: 'EUR',       // 货币类型
    foreignTransactionID: '', // 外部交易ID
    saleItemsCount: 0,     // 销售项目数量
    skipSuccessScreen: false, // 是否跳过成功屏幕
    tip: .0,               // 小费
);

var request = SumupPaymentRequest(payment);

SumupSdkWrapper.checkout(request);

可用API

SumupSdkWrapper.init(affiliateKey); // 初始化SDK

SumupSdkWrapper.login(); // 登录

SumupSdkWrapper.isLoggedIn; // 检查是否已登录

SumupSdkWrapper.merchant; // 获取商户信息

SumupSdkWrapper.openSettings(); // 打开设置页面

SumupSdkWrapper.prepareForCheckout(); // 准备终端进行结账

SumupSdkWrapper.checkout(request); // 完成交易

SumupSdkWrapper.logout(); // 登出

// iOS独有
SumupSdkWrapper.isCheckoutInProgress; // 检查是否正在进行结账

示例代码

以下是一个完整的示例代码,展示如何使用sumup_sdk_wrapper完成支付流程。

示例代码:main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:sumup_sdk_wrapper/sumup_sdk_wrapper.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';
  final _sumupSdkWrapperPlugin = SumupSdkWrapper();

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 平台消息异步初始化
  Future<void> initPlatformState() async {
    String platformVersion;
    try {
      platformVersion =
          await _sumupSdkWrapperPlugin.getPlatformVersion() ?? 'Unknown platform version';
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('SumUp支付插件示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
            Text('运行环境: $_platformVersion\n'),
            ElevatedButton(
              onPressed: () {
                // 初始化SDK
                SumupSdkWrapper.init('your_affiliate_key');

                // 登录
                SumupSdkWrapper.login();

                // 准备终端
                SumupSdkWrapper.prepareForCheckout();

                // 创建支付请求
                var payment = SumupPayment(
                  title: '测试支付',
                  total: 1.2,
                  currency: 'EUR',
                  foreignTransactionID: '',
                  saleItemsCount: 0,
                  skipSuccessScreen: false,
                  tip: 0.0,
                );

                var request = SumupPaymentRequest(payment);

                // 开始支付
                SumupSdkWrapper.checkout(request);
              },
              child: Text('开始支付'),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter支付集成插件sumup_sdk_wrapper的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter支付集成插件sumup_sdk_wrapper的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


sumup_sdk_wrapper 是一个用于在 Flutter 应用中集成 SumUp 支付的插件。SumUp 是一家提供移动支付解决方案的公司,允许用户通过智能手机或平板电脑接受信用卡支付。以下是如何在 Flutter 项目中使用 sumup_sdk_wrapper 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 sumup_sdk_wrapper 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  sumup_sdk_wrapper: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

2. 配置 Android 和 iOS 项目

Android

android/app/build.gradle 文件中,确保 minSdkVersion 至少为 21:

android {
    defaultConfig {
        minSdkVersion 21
        // 其他配置
    }
    // 其他配置
}

iOS

ios/Podfile 中,确保平台设置为 iOS 11 或更高版本:

platform :ios, '11.0'

然后运行 pod install 来更新 iOS 项目的依赖。

3. 初始化 SumUp SDK

在 Flutter 应用中初始化 SumUp SDK。通常,你可以在 main.dart 文件中进行初始化:

import 'package:flutter/material.dart';
import 'package:sumup_sdk_wrapper/sumup_sdk_wrapper.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 SumUp SDK
  await SumUpSdkWrapper.init('YOUR_SUMUP_AFFILIATE_KEY');
  
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter SumUp Integration',
      home: PaymentScreen(),
    );
  }
}

4. 处理支付

PaymentScreen 中,你可以使用 SumUpSdkWrapper 来处理支付。以下是一个简单的支付示例:

import 'package:flutter/material.dart';
import 'package:sumup_sdk_wrapper/sumup_sdk_wrapper.dart';

class PaymentScreen extends StatelessWidget {
  Future<void> _processPayment() async {
    try {
      final response = await SumUpSdkWrapper.processPayment(
        amount: 10.0, // 支付金额
        currencyCode: 'EUR', // 货币代码
        title: 'Test Payment', // 支付标题
      );

      if (response['success']) {
        print('Payment successful: ${response['transaction_code']}');
      } else {
        print('Payment failed: ${response['error_message']}');
      }
    } catch (e) {
      print('Error processing payment: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SumUp Payment'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _processPayment,
          child: Text('Pay with SumUp'),
        ),
      ),
    );
  }
}
回到顶部