Flutter安全支付插件safepay_checkout的使用

Flutter安全支付插件safepay_checkout的使用

一个Flutter插件,用于无缝集成Safepay支付网关,实现安全高效的支付处理。此插件通过提供一个预构建的小部件来简化结账集成,从而处理所有支付操作。

安装

步骤1:添加依赖

首先,在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  safepay_checkout: ^1.0.6

步骤2:导入包

在你想要使用的Dart文件中导入该包:

import 'package:safepay_checkout/safepay_payment_gateway.dart';

步骤3:添加结账小部件

SafepayCheckout小部件添加到你的屏幕中。此小部件负责整个支付流程。

SafepayCheckout(
  tracker: 'your tracker token', // 你的追踪令牌
  tbt: 'your authentication token', // 你的认证令牌
  environment: SafePayEnvironment.sandbox, // 环境设置(例如:生产、沙盒)
  successUrl: 'yourdomain.com', // 成功支付后的重定向URL
  failUrl: 'yourfaildomain.com', // 支付失败后的重定向URL
  onPaymentFailed: () {
    // 支付失败
    print('Payment cancelled');
  },
  onPaymentCompleted: () {
    // 支付成功
    print('Payment successful');
  },
);

此代码会将Safepay支付网关添加到你的屏幕上,以启用支付处理。

参数

参数 数据类型 描述
tracker String 你的追踪令牌。
tbt String 你的认证令牌。
environment SafePayEnvironment 环境设置(例如:生产、沙盒)。
successUrl String 成功支付后的重定向URL。
failUrl String 支付失败后的重定向URL。
onPaymentFailed VoidCallback 支付失败时触发的回调。
onPaymentCompleted VoidCallback 支付成功完成时触发的回调。

要获取追踪令牌和认证令牌,请遵循以下指南: 获取令牌指南

全屏示例

如果你希望有一个完整的屏幕来处理支付,请查看以下示例。

Checkout.dart

创建一个名为Checkout.dart的新文件,并导航到你的应用程序中的这个屏幕。这将处理支付逻辑并触发成功、失败或身份验证错误事件。

import 'package:flutter/material.dart';
import 'package:safepay_checkout/safepay_payment_gateway.dart';

class CheckoutScreen extends StatefulWidget {
  final double amount; // 金额
  final String publicKey; // 公钥
  final String secretKey; // 秘钥
  final String currency; // 货币
  final SafePayEnvironment environment; // 环境
  final String orderId; // 订单ID
  final String successUrl; // 成功URL
  final String failUrl; // 失败URL

  const CheckoutScreen({
    Key? key,
    required this.amount,
    required this.publicKey,
    required this.secretKey,
    required this.currency,
    required this.environment,
    required this.orderId,
    required this.successUrl,
    required this.failUrl,
  }) : super(key: key);

  [@override](/user/override)
  State<CheckoutScreen> createState() => _CheckoutScreenState();
}

class _CheckoutScreenState extends State<CheckoutScreen> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return SafepayCheckout(
      tracker: 'your tracker token', // 追踪令牌
      tbt: 'your authentication token', // 认证令牌
      environment: SafePayEnvironment.sandbox, // 环境设置
      successUrl: 'yourdomain.com', // 成功URL
      failUrl: 'yourfaildomain.com', // 失败URL
      onPaymentFailed: () {
        // 支付失败
        print('Payment cancelled');
      },
      onPaymentCompleted: () {
        // 支付成功
        print('Payment successful');
      },
    );
  }
}

额外示例

要查看更多详细示例,可以参阅存储库中的example文件夹以获取完整的集成。

完整示例

如果你想看到一个完整的例子,请查看以下代码:

main.dart

import 'package:example/test.dart'; // 假设这是你的测试文件
import 'package:flutter/material.dart';

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Safepay',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Safepay example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.transparent,
        elevation: 0,
        title: Text(widget.title),
        centerTitle: true,
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => const TestScreen()),
                );
              },
              child: const Text(
                'Checkout',
                style: TextStyle(color: Colors.black, fontSize: 16),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是一个关于如何在Flutter应用中使用safepay_checkout插件进行安全支付的代码示例。假设你已经在pubspec.yaml文件中添加了safepay_checkout依赖,并运行了flutter pub get来安装它。

首先,确保你的pubspec.yaml文件中包含以下依赖项:

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

接下来,在你的Flutter项目中,你可以按照以下步骤使用safepay_checkout插件:

  1. 导入插件

在你的Dart文件中导入safepay_checkout插件:

import 'package:safepay_checkout/safepay_checkout.dart';
  1. 初始化支付配置

你需要配置支付所需的一些参数,比如公钥、环境(沙箱或生产)、支付金额等。以下是一个示例配置:

final SafePayConfiguration config = SafePayConfiguration(
  publicKey: 'your_public_key_here',  // 替换为你的公钥
  environment: SafePayEnvironment.sandbox,  // 或者 SafePayEnvironment.production
  amount: 100.0,  // 支付金额,单位通常是你的货币的最小单位(例如,对于美元,100.0代表1.00美元)
  currencyCode: 'USD',  // 货币代码
  // 其他可选配置,如商户ID、商品描述等
);
  1. 启动支付流程

使用SafePayCheckout类的startPayment方法来启动支付流程:

void startPayment() async {
  try {
    final result = await SafePayCheckout.startPayment(
      configuration: config,
      onSuccess: (paymentResult) {
        // 支付成功后的回调处理
        print('Payment successful: ${paymentResult.toMap()}');
        // 你可以在这里处理支付成功后的逻辑,比如更新订单状态
      },
      onError: (error) {
        // 支付失败或取消后的回调处理
        print('Payment error: $error');
        // 你可以在这里处理支付失败或取消的逻辑
      },
    );
    // result 通常不需要处理,除非你需要检查某些特定的状态码或信息
  } catch (e) {
    // 处理异常,比如插件未正确初始化等
    print('Error starting payment: $e');
  }
}
  1. 在UI中触发支付

最后,在你的UI组件中(比如一个按钮的点击事件处理器)调用startPayment方法:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('SafePay Checkout Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: startPayment,
            child: Text('Start Payment'),
          ),
        ),
      ),
    );
  }
}

这个示例展示了如何在Flutter应用中使用safepay_checkout插件来启动一个支付流程。请确保你已经替换了示例代码中的占位符(如公钥)为实际的值,并根据你的业务需求调整支付配置和回调处理逻辑。

回到顶部