Flutter支付结算插件flutter_fayaalma_checkout的使用

Flutter支付结算插件flutter_fayaalma_checkout的使用

开始使用

本项目是一个新的Flutter插件项目,用于实现支付结算功能。该插件包含针对Android和/或iOS平台的特定实现代码。

对于希望开始进行Flutter开发的朋友,可以参考在线文档,其中包含了教程、示例、移动开发指南以及完整的API引用。

完整示例

以下是一个使用flutter_fayaalma_checkout插件的完整示例代码。这个例子展示了如何在应用中集成支付结算功能。

import 'package:flutter_fayaalma_checkout/flutter_fayaalma_checkout.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> {
  [@override](/user/override)
  void initState() {
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.grey.shade100,
        body: Padding(
          padding: const EdgeInsets.only(top: 55),
          child: FayaalmaCheckout(
            width: double.infinity,
            height: double.infinity,
            actifColor: Colors.green.shade600,
            inactifColor: Colors.amber,
            initCheckOutEntity: CheckOutEntity(
              appID: '3daf232f-97d6-4452-bd49-69e0bc793c55',
              orderID: '28430',
              amount: 100.5,
              payerFullName: 'Alioune Badara DIOUF',
              productsOrdered: [
                ProductEntity(
                  productName: "Sac En Cuire",
                  unitPrice: 200.0,
                  quantity: 1,
                ),
                ProductEntity(
                  productName: "Iphone 15 Pro",
                  unitPrice: 200.0,
                  quantity: 2,
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


flutter_fayaalma_checkout 是一个用于集成 Fawry 支付网关的 Flutter 插件。Fawry 是中东和北非地区常用的支付解决方案之一,支持多种支付方式,如信用卡、借记卡、移动钱包等。

以下是如何在 Flutter 项目中使用 flutter_fayaalma_checkout 插件的步骤:

1. 添加依赖

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

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

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

2. 配置 Android 和 iOS 项目

确保你的 Android 和 iOS 项目配置正确。

Android

android/app/build.gradle 文件中,确保 minSdkVersion 至少为 21:

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 30
    // 其他配置
}

iOS

ios/Podfile 中,确保 platform :ios 至少为 9.0:

platform :ios, '9.0'

3. 初始化插件

在你的 Dart 代码中,导入并初始化 flutter_fayaalma_checkout 插件:

import 'package:flutter_fayaalma_checkout/flutter_fayaalma_checkout.dart';

4. 发起支付请求

使用 FlutterFayaalmaCheckout 类来发起支付请求。你需要提供 Fawry 的商户信息、支付金额、用户信息等。

void initiatePayment() async {
  try {
    Map<String, dynamic> paymentDetails = {
      'merchantCode': 'YOUR_MERCHANT_CODE',
      'merchantRefNum': 'UNIQUE_REFERENCE_NUMBER',
      'customerMobile': 'CUSTOMER_MOBILE_NUMBER',
      'customerEmail': 'CUSTOMER_EMAIL',
      'amount': 'PAYMENT_AMOUNT',
      'paymentMethod': 'PAYMENT_METHOD', // e.g., 'CARD', 'WALLET'
      'description': 'PAYMENT_DESCRIPTION',
      'language': 'LANGUAGE', // e.g., 'en', 'ar'
      'returnUrl': 'RETURN_URL',
      'items': [
        {
          'itemId': 'ITEM_ID',
          'description': 'ITEM_DESCRIPTION',
          'price': 'ITEM_PRICE',
          'quantity': 'ITEM_QUANTITY',
        }
      ],
    };

    var result = await FlutterFayaalmaCheckout.initiatePayment(paymentDetails);
    print('Payment Result: $result');
  } catch (e) {
    print('Error: $e');
  }
}

5. 处理支付结果

initiatePayment 方法会返回支付结果,你可以根据返回的结果来处理支付成功或失败的情况。

if (result['status'] == 'SUCCESS') {
  // 支付成功
} else {
  // 支付失败
}

6. 其他注意事项

  • 测试环境:在开发阶段,确保使用 Fawry 的测试环境进行支付测试。
  • 生产环境:在发布应用时,记得切换到 Fawry 的生产环境,并使用真实的商户信息。

7. 示例代码

以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 flutter_fayaalma_checkout 插件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Fawry Payment Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: initiatePayment,
            child: Text('Pay with Fawry'),
          ),
        ),
      ),
    );
  }

  void initiatePayment() async {
    try {
      Map<String, dynamic> paymentDetails = {
        'merchantCode': 'YOUR_MERCHANT_CODE',
        'merchantRefNum': 'UNIQUE_REFERENCE_NUMBER',
        'customerMobile': 'CUSTOMER_MOBILE_NUMBER',
        'customerEmail': 'CUSTOMER_EMAIL',
        'amount': 'PAYMENT_AMOUNT',
        'paymentMethod': 'PAYMENT_METHOD', // e.g., 'CARD', 'WALLET'
        'description': 'PAYMENT_DESCRIPTION',
        'language': 'LANGUAGE', // e.g., 'en', 'ar'
        'returnUrl': 'RETURN_URL',
        'items': [
          {
            'itemId': 'ITEM_ID',
            'description': 'ITEM_DESCRIPTION',
            'price': 'ITEM_PRICE',
            'quantity': 'ITEM_QUANTITY',
          }
        ],
      };

      var result = await FlutterFayaalmaCheckout.initiatePayment(paymentDetails);
      print('Payment Result: $result');
    } catch (e) {
      print('Error: $e');
    }
  }
}
回到顶部