Flutter金融支付插件tinkoff_sdk的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter金融支付插件tinkoff_sdk的使用

Tinkoff SDK для Flutter

Tinkoff SDK позволяет интегрировать Интернет-Эквайринг от Тинькофф в мобильные приложения на Flutter.

能够实现的功能

  • ✅ Прием платежей (в том числе рекуррентных)
  • ✅ Завершение оплаты в приложении
  • ✅ Оплата с помощью:
    • ✅ СБП (Системы быстрых платежей)
      • ✅ TinkoffPay
      • ✅ QR-кода (статический и динамический)
    • ✅ Получение информации о картах клиента
      • ✅ Добавление новой банковской карты
        • ✅ Управление сохраненными картами

内容

  1. Tinkoff SDK для Flutter

    • Возможности SDK
      • Содержание
      • Требования
        • Android
        • iOS
      • Использование
        • Подготовка к работе
        • Проведение оплаты
        • СБП
          • iOS
          • Android
        • Оплата с помощью QR-кода
          • Статический QR-код
          • Динамический QR-код
        • T-Pay
          • iOS
          • Android
        • Список привязанных карт
        • Добавление новой банковской карты
        • Решение возможных проблем
          • Ошибка 309. Неверные параметры
  2. Требования

    • Для работы Tinkoff SDK необходимо:
      • Поддержка Android 7.0 и выше (API level 24)
      • Использование FragmentActivity вместо Activity
  3. Использование

    • Подготовка к работе
      • Для начала работы с SDK вам понадобятся:
        • Terminal Key
        • PublicKey
        • Эти данные вы получите после подключения к Интернет-Эквайрингу.
    • Проведение оплаты
      • Для проведения оплаты нужно вызвать метод openPaymentScreen.
    • СБП
      • Перед началом работы с СБП (Системой быстрых платежей) включите “Оплату через Систему быстрых платежей” в Личном кабинете.
    • Оплата с помощью QR-кода
      • Оплата с помощью QR-кода может быть проведена двумя способами: через статический или динамический QR-код.
    • T-Pay
      • Перед началом работы подключите “Оплату через T-Pay” в Личном кабинете.
    • Список привязанных карт
      • Вы можете отобразить список привязанных карт пользователя. Для этого вызовите метод getCardList.
    • Добавление новой банковской карты
      • Вы можете отобразить на новом экране форму добавления новой банковской карты. Для этого вызовите метод openAttachCardScreen.
    • Решение возможных проблем
      • Ошибка 309. Неверные параметры
        • В случае, если в вашем магазине подключена Онлайн-Касса, которой необходимо к каждому платежу прикреплять чек, возникнет ошибка 309. Неверные параметры.
        • Решение:
          • В методе openPaymentScreen в OrderOptions необходимо добавить следующее:
            • Поле чека (receipt) с непустым списком позиций чека (items)
            • Для каждой позиции в чеке (Item1) добавьте поле quantity
            • В поле receipt в Receipt1 добавьте поля taxation, email или phone

示例代码


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

1 回复

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


当然,以下是一个关于如何在Flutter项目中使用Tinkoff支付SDK(tinkoff_sdk)的示例代码。这个示例展示了如何集成Tinkoff支付插件并进行支付操作。

首先,确保你已经在pubspec.yaml文件中添加了tinkoff_sdk依赖:

dependencies:
  flutter:
    sdk: flutter
  tinkoff_sdk: ^最新版本号  # 请替换为实际的最新版本号

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

接下来,你需要在你的Flutter项目中设置Tinkoff支付的配置。这通常涉及获取客户端ID和客户端密钥,这些信息你应该从Tinkoff的开发者平台获取。

以下是一个完整的示例,包括如何初始化插件和发起支付请求:

1. 初始化Tinkoff SDK

在你的main.dart或适当的Dart文件中,导入必要的包并初始化Tinkoff SDK:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  final TinkoffSdk _tinkoffSdk = TinkoffSdk();

  @override
  void initState() {
    super.initState();
    // 初始化Tinkoff SDK(通常在应用启动时调用一次)
    _initializeTinkoffSdk();
  }

  Future<void> _initializeTinkoffSdk() async {
    try {
      await _tinkoffSdk.init(
        clientId: '你的客户端ID',  // 替换为你的客户端ID
        clientSecret: '你的客户端密钥',  // 替换为你的客户端密钥
        // 其他可选配置,如环境(测试/生产)等
      );
      print('Tinkoff SDK initialized successfully');
    } catch (e) {
      print('Failed to initialize Tinkoff SDK: $e');
    }
  }

  // 发起支付请求的函数
  Future<void> _startPayment() async {
    try {
      final paymentResult = await _tinkoffSdk.createPayment(
        amount: 100.0,  // 支付金额(卢布)
        orderId: '订单ID',  // 替换为你的订单ID
        description: '商品描述',  // 替换为你的商品描述
        // 其他可选参数,如支付方式、回调URL等
      );

      if (paymentResult.isSuccess) {
        print('Payment successful: $paymentResult');
      } else {
        print('Payment failed: $paymentResult');
      }
    } catch (e) {
      print('Failed to start payment: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Tinkoff SDK Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _startPayment,
          child: Text('Start Payment'),
        ),
      ),
    );
  }
}

注意事项

  1. 安全性:确保不要在客户端代码中硬编码敏感信息(如客户端ID和客户端密钥)。你应该使用环境变量或安全的密钥管理服务来管理这些信息。
  2. 错误处理:上面的示例中只包含基本的错误处理。在实际应用中,你应该添加更详细的错误处理和用户反馈机制。
  3. UI定制:Tinkoff SDK通常会提供自定义UI的选项,以符合你的应用设计。你可以查阅Tinkoff SDK的官方文档来了解如何定制UI。
  4. 支付回调:在实际应用中,你通常会设置一个回调URL来处理支付成功或失败后的逻辑。这个URL应该在你的服务器端配置,并且不应该在客户端代码中硬编码。

希望这个示例能帮助你在Flutter项目中成功集成Tinkoff支付SDK!

回到顶部