Flutter数据收集插件dlocal_data_collector_flutter的使用

Flutter数据收集插件dlocal_data_collector_flutter的使用

DLocal的数据收集SDK Flutter插件适用于Android和iOS。

此插件是原生SDK的封装,原生SDK可以在以下位置找到:

更多关于每个平台SDK功能的信息可以在这两个仓库中找到。

安装

pubspec.yaml文件中添加以下依赖项:

dependencies:
  dlocal_data_collector_flutter: ^版本号

然后运行以下命令来安装依赖:

flutter pub get

使用

应用启动时的设置

在应用启动时,添加以下代码:

final _dlocalDataCollectorFlutterPlugin = DlocalDataCollectorFlutter();

await _dlocalDataCollectorFlutterPlugin.setUp("apiKey", 0);

await _dlocalDataCollectorFlutterPlugin.startSession();

apiKey替换为您的密钥。
environment替换为0(沙盒环境)或1(生产环境)。

将会话与交易关联

当用户开始结账交易时,获取会话ID:

String sessionId = await _dlocalDataCollectorFlutterPlugin.getSessionId();

注意: 如果未调用setUpstartSession,则会话ID将为undefined

在支付请求中提交此值到additional_risk_data.device.event_uuid参数中。如果会话不可用或发生错误,sessionId可能为undefined

示例代码

以下是一个完整的示例代码,展示如何使用dlocal_data_collector_flutter插件。

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

import 'package:flutter/services.dart';
import 'package:dlocal_data_collector_flutter/dlocal_data_collector_flutter.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 _dlocalDataCollectorFlutterPlugin = DlocalDataCollectorFlutter();

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

  // 异步初始化平台状态
  Future<void> initPlatformState() async {
    String platformVersion;
    try {
      // 设置API密钥和环境
      await _dlocalDataCollectorFlutterPlugin.setUp(
          "9c0cfa84-bfa6-4de1-b8ed-9ee26104031c", 0);

      // 启动会话
      await _dlocalDataCollectorFlutterPlugin.startSession();

      // 获取会话ID
      platformVersion = await _dlocalDataCollectorFlutterPlugin.getSessionId() ??
          'Unknown session Id';
    } on PlatformException {
      platformVersion = 'Failed to get session id.';
    }

    if (!mounted) return;

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Text('Running on: $_platformVersion\n'),
        ),
      ),
    );
  }
}

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

1 回复

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


dlocal_data_collector_flutter 是一个用于收集支付信息的 Flutter 插件,通常用于集成 DLocal 支付网关。该插件可以帮助收集用户的支付卡信息,如卡号、有效期、CVV 等,并将这些信息安全地提交给 DLocal 的服务器。

以下是使用 dlocal_data_collector_flutter 的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 dlocal_data_collector_flutter 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  dlocal_data_collector_flutter: ^1.0.0  # 请使用最新版本

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

2. 初始化插件

在你的 Dart 代码中,初始化 dlocal_data_collector_flutter 插件。通常,你需要在应用启动时进行初始化。

import 'package:dlocal_data_collector_flutter/dlocal_data_collector_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 DLocal Data Collector
  await DLocalDataCollectorFlutter.initialize(
    publicKey: 'YOUR_PUBLIC_KEY',  // 你的 DLocal 公钥
    countryCode: 'UY',             // 国家代码
    currencyCode: 'USD',           // 货币代码
  );

  runApp(MyApp());
}

3. 收集支付卡信息

使用 DLocalDataCollectorFlutter 提供的 API 来收集用户的支付卡信息。通常,你需要在用户输入卡信息后调用这些 API。

import 'package:dlocal_data_collector_flutter/dlocal_data_collector_flutter.dart';

Future<void> collectCardData() async {
  try {
    // 假设用户输入的卡信息
    String cardNumber = '4111111111111111';
    String expirationMonth = '12';
    String expirationYear = '2025';
    String cvv = '123';

    // 收集卡信息
    String token = await DLocalDataCollectorFlutter.collectCardData(
      cardNumber: cardNumber,
      expirationMonth: expirationMonth,
      expirationYear: expirationYear,
      cvv: cvv,
    );

    print('Card token: $token');
    // 将这个 token 提交到你的服务器,用于后续的支付处理
  } catch (e) {
    print('Error collecting card data: $e');
  }
}
回到顶部