Flutter支付插件chargily_epay_flutter的使用

Flutter支付插件chargily_epay_flutter的使用

Flutter Package for Chargily ePay Gateway

Chargily ePay Gateway

此插件旨在简化与Chargily集成的电子支付网关。目前支持通过CIB/EDAHABIA卡支付,并且即将支持Visa/Mastercard卡。

安装

使用flutter CLI:

flutter pub add chargily_epay_flutter

或通过编辑pubspec.yaml文件:

编辑pubspec.yaml文件以包含chargily_epay_flutter包:

flutter:
  sdk: flutter
chargily_epay_flutter: any # 添加此行

然后运行以下命令:

flutter pub get
# 或者
dart pub get

使用

首先导入chargily_epay_flutter库:

import 'package:chargily_epay_flutter/chargily.dart';

接下来,创建一个Chargily客户端实例并调用createPayment方法来生成支付请求:

void main(List<String> args) async {
  // 初始化Chargily客户端,传入API密钥
  final chargilyClient = Chargily('[API_KEY]');

  // 创建发票对象
  final invoice = Invoice(
      client: 'ahmed', // 客户姓名
      clientEmail: 'rainxh11@gmail.com', // 客户邮箱
      amount: 1500, // 支付金额(单位为分)
      discount: 20.0, // 折扣金额
      webhookUrl: 'http://webhookurl.com/', // 回调URL
      backUrl: 'http://backurl.com/', // 返回URL
      comment: 'Purchace', // 备注
      mode: PaymentMethod.CIB, // 支付方式
      invoiceNumber: '12345'); // 发票编号

  // 发起支付请求
  final response = await chargilyClient.createPayment(invoice);

  // 打印响应结果
  print(response);
}

注意事项

对于直接使用源代码而非从pub.dev安装包的开发者:

此库使用retrofit生成REST API客户端。如果在构建源代码时遇到任何问题,请尝试重新生成API客户端,使用以下命令:

flutter pub run build_runner build --delete-conflicting-outputs

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用chargily_epay_flutter插件的一个基本示例。这个插件假设是用于处理支付功能,但请注意,实际使用时需要参考插件的官方文档以获取最新的API和配置信息。

首先,确保你已经在Flutter项目的pubspec.yaml文件中添加了chargily_epay_flutter依赖:

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

然后,运行flutter pub get来获取依赖。

接下来,你需要在你的Flutter应用中初始化并使用这个插件。以下是一个简单的示例代码,展示了如何调用支付功能:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '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('Flutter Demo Home Page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 初始化ChargilyEpayFlutter插件
            final ChargilyEpayFlutter chargilyEpay = ChargilyEpayFlutter();

            // 配置支付参数(这些参数需要根据实际情况进行配置)
            final Map<String, dynamic> paymentOptions = {
              'merchantId': '你的商户ID',
              'amount': 100.0, // 支付金额
              'currency': 'USD', // 货币类型
              'description': '商品描述',
              // 其他需要的参数...
            };

            try {
              // 发起支付请求
              final result = await chargilyEpay.startPayment(paymentOptions);
              if (result['status'] == 'success') {
                // 支付成功处理
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('支付成功')),
                );
              } else {
                // 支付失败处理
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('支付失败: ${result['message']}')),
                );
              }
            } catch (e) {
              // 错误处理
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('发生错误: $e')),
              );
            }
          },
          child: Text('发起支付'),
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们创建了一个简单的Flutter应用,其中包含一个按钮。
  2. 当按钮被点击时,会调用ChargilyEpayFlutter插件的startPayment方法来发起支付请求。
  3. 支付请求的参数包括商户ID、支付金额、货币类型等,这些都需要根据你的实际情况进行配置。
  4. 根据支付结果,显示相应的SnackBar消息。

请注意,这只是一个基本的示例,实际使用时你可能需要处理更多的情况,比如用户取消支付、网络错误等。此外,确保你已经按照chargily_epay_flutter插件的官方文档正确配置了必要的参数和权限。

回到顶部