Flutter支付插件waafipay的功能使用

Flutter支付插件waafipay的功能使用

概述

WaafiPay Flutter 客户端 是一个简单直观的软件包,用于与 WaafiPay 支付网关集成。它允许你执行各种支付操作,如预授权付款、提交交易和取消预授权,同时无缝管理你的 API 请求。

功能

  • 预授权付款:只需几行代码即可轻松发起预授权付款。
  • 提交交易:安全地提交已预授权的付款以最终确定交易。
  • 取消预授权:快速高效地取消任何待处理的预授权。
  • 易于使用:设计简洁,便于集成。
  • 安全:小心处理敏感的支付信息。

安装

你可以通过 flutter pub 安装 WaafiPay 包:

flutter pub add waafipay

示例代码

以下是一个完整的示例代码,演示如何使用 WaafiPay 插件进行预授权付款、提交交易和取消预授权。

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaymentScreen(),
    );
  }
}

class PaymentScreen extends StatefulWidget {
  [@override](/user/override)
  _PaymentScreenState createState() => _PaymentScreenState();
}

class _PaymentScreenState extends State<PaymentScreen> {
  final WaafiPay waafiPay = WaafiPay(apiKey: 'YOUR_API_KEY');

  Future<void> preauthorizePayment() async {
    try {
      // 预授权付款
      var response = await waafiPay.preauthorizePayment(
        amount: 100.0,
        currency: 'USD',
        description: 'Test Payment',
        returnUrl: 'https://yourwebsite.com/return',
      );

      print('Preauthorization successful: ${response}');
    } catch (e) {
      print('Error during preauthorization: $e');
    }
  }

  Future<void> commitTransaction() async {
    try {
      // 提交交易
      var response = await waafiPay.commitTransaction(
        transactionId: 'PREAUTH_ID', // 替换为实际的预授权ID
      );

      print('Transaction committed successfully: ${response}');
    } catch (e) {
      print('Error during transaction commit: $e');
    }
  }

  Future<void> cancelPreauthorization() async {
    try {
      // 取消预授权
      var response = await waafiPay.cancelPreauthorization(
        transactionId: 'PREAUTH_ID', // 替换为实际的预授权ID
      );

      print('Preauthorization canceled successfully: ${response}');
    } catch (e) {
      print('Error during preauthorization cancellation: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('WaafiPay 示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: preauthorizePayment,
              child: Text('预授权付款'),
            ),
            ElevatedButton(
              onPressed: commitTransaction,
              child: Text('提交交易'),
            ),
            ElevatedButton(
              onPressed: cancelPreauthorization,
              child: Text('取消预授权'),
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


waafipay 是一个用于 Flutter 的支付插件,专门用于集成 Waafi Pay 支付网关。Waafi Pay 是一个流行的支付解决方案,主要用于非洲和中东地区的移动支付。通过 waafipay 插件,开发者可以轻松地在 Flutter 应用中集成 Waafi Pay 支付功能。

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

1. 添加依赖

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

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

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

2. 配置 Android 和 iOS

在集成支付插件时,通常需要对 Android 和 iOS 项目进行一些配置。

Android

确保你的 AndroidManifest.xml 文件中允许网络请求:

<uses-permission android:name="android.permission.INTERNET"/>

iOS

Info.plist 文件中添加以下内容以允许网络请求:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

3. 初始化 Waafi Pay

在使用 waafipay 插件之前,你需要初始化它。通常,你需要在应用的 main 函数中进行初始化:

import 'package:waafipay/waafipay.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await WaafiPay.initialize(
    apiKey: 'YOUR_API_KEY',
    merchantUid: 'YOUR_MERCHANT_UID',
    isTest: true, // 如果是测试环境设置为 true,生产环境设置为 false
  );
  runApp(MyApp());
}

4. 发起支付请求

在用户需要支付时,你可以使用 WaafiPay 类发起支付请求。以下是一个简单的示例:

import 'package:waafipay/waafipay.dart';

void initiatePayment() async {
  try {
    final response = await WaafiPay.startPayment(
      amount: '100', // 支付金额
      phoneNumber: '1234567890', // 用户手机号码
      description: 'Payment for order #123', // 支付描述
      transactionId: 'TX123456', // 交易ID
    );

    if (response['status'] == 'success') {
      // 支付成功
      print('Payment successful: ${response['transactionId']}');
    } else {
      // 支付失败
      print('Payment failed: ${response['message']}');
    }
  } catch (e) {
    // 处理异常
    print('Error: $e');
  }
}
回到顶部