Flutter支付集成插件lengopay_flutter的使用

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

Flutter支付集成插件lengopay_flutter的使用

lengopay_flutter 是一个用于在Flutter应用程序中轻松集成Lengo Pay的插件。它简化了生成支付URL和处理回调通知的过程。

功能特性

  • 生成支付URL:为每笔交易创建特定金额和货币的支付URL。
  • 回调管理:接收关于支付状态的通知。
  • 多币种支持:接受多种货币,如GNF、XOF、USD等。

安装

要将 lengopay_flutter 添加为您的Flutter项目的依赖项,请运行以下命令:

flutter pub add lengopay_flutter

或者手动添加到 pubspec.yaml 文件中:

dependencies:
  lengopay_flutter: ^1.1.2

然后执行:

flutter pub get

使用基础

导入

首先,在您的项目中导入包:

import 'package:lengopay_flutter/lengopay_flutter.dart';

创建支付URL示例

下面是一个简单的例子,演示如何初始化服务并发起支付请求:

import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:lengopay_flutter/lengopay_flutter.dart';

void main() => runApp(const LengoPayApp());

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

  [@override](/user/override)
  State<LengoPayApp> createState() => _LengoPayAppState();
}

class _LengoPayAppState extends State<LengoPayApp> {
  String output = '点击按钮测试支付功能。';

  Future<void> testPayment() async {
    final lengopay = LengopayFlutter(
      licenseKey: 'VOTRE_LICENSE_KEY', // 替换为您自己的license key
    );

    try {
      final paymentResponse = await lengopay.initiatePayment(
        PaymentRequest(
          websiteId: 'VOTRE_WEBSITE_ID', // 网站唯一标识符
          amount: 1500, // 支付金额
          currency: 'GNF', // 使用的货币 "GNF", "XOF" 或 "USD"
          returnUrl: '', // 可选 返回URL
          callbackUrl: '', // 可选 回调URL
        ),
      );
      setState(() {
        output = '''
              状态: ${paymentResponse.status}
              支付ID: ${paymentResponse.payId}
              支付URL: ${paymentResponse.paymentUrl}
        ''';
      });
      log('状态: ${paymentResponse.status}');
      log('支付ID: ${paymentResponse.payId}');
      log('支付URL: ${paymentResponse.paymentUrl}');
    } on LengopayException catch (e) {
      log('LengoPay错误: ${e.toString()}');
      setState(() {
        output = 'LengoPay错误: ${e.toString()}';
      });
    } catch (e) {
      setState(() {
        output = '未知错误: ${e.toString()}';
      });
      log('未知错误: ${e.toString()}');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Lengo Pay Flutter Demo',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Lengo Pay Flutter'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              MaterialButton(
                color: Colors.blue,
                textColor: Colors.white,
                onPressed: testPayment,
                child: Text('测试支付'),
              ),
              SizedBox(height: 10),
              Text(
                output,
                style: const TextStyle(fontSize: 16),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


在Flutter项目中集成和使用lengopay_flutter插件进行支付操作,可以按照以下步骤进行。这里将展示一个基本的代码示例,演示如何在Flutter应用中初始化并使用lengopay_flutter插件。

1. 添加依赖

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

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

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

2. 导入插件

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

import 'package:lengopay_flutter/lengopay_flutter.dart';

3. 配置和初始化

在使用lengopay_flutter之前,你需要进行一些配置,比如设置API密钥等。这通常在应用的初始化阶段进行。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化Lengopay插件,替换为你的API密钥
  await LengopayFlutter.initialize('你的API密钥');
  
  runApp(MyApp());
}

4. 实现支付功能

接下来,你可以在你的应用中实现支付功能。以下是一个简单的按钮点击事件,触发支付流程:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await LengopayFlutter.initialize('你的API密钥');
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Lengopay Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Lengopay Flutter Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            try {
              // 构建支付请求数据,根据Lengopay的API文档填写实际参数
              final paymentData = {
                'amount': '100.00',  // 支付金额
                'currency': 'USD',   // 货币单位
                'description': 'Test Payment',  // 支付描述
                // 其他必要的支付参数...
              };

              // 发起支付请求
              final result = await LengopayFlutter.startPayment(paymentData);
              
              // 处理支付结果
              if (result['status'] == 'success') {
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Payment Successful')),
                );
              } else {
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Payment Failed: ${result['message']}')),
                );
              }
            } catch (e) {
              print('Error initiating payment: $e');
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('Error initiating payment')),
              );
            }
          },
          child: Text('Pay Now'),
        ),
      ),
    );
  }
}

注意事项

  1. API密钥:确保你使用的是Lengopay提供的有效API密钥。
  2. 支付参数:根据Lengopay的API文档,填写所有必要的支付参数。
  3. 错误处理:在生产环境中,添加更详细的错误处理和用户反馈机制。
  4. 安全性:不要在客户端代码中硬编码敏感信息,考虑使用安全的存储和传输方法。

这个示例展示了如何在Flutter应用中集成lengopay_flutter插件,并触发一个简单的支付流程。根据Lengopay的实际API文档和需求,你可能需要调整支付参数和处理逻辑。

回到顶部