Flutter支付插件uddoktapay的使用

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

Flutter支付插件uddoktapay的使用

UddoktaPay支付网关Flutter插件由Programming Wormhole提供

Pub License PRs Welcome Maintenance Open Source Love svg1

这是一个用于UddoktaPay支付网关的Flutter插件。此插件可在flutter项目中使用。Programming Wormhole在为一个项目工作时创建了此插件,并决定将其发布出来以帮助他人。

⚠️ 请注意,您需要联系UddoktaPay销售团队以获取任何开发或生产访问密钥。我们不提供测试帐户或访问密钥,也不接受此类咨询。

GitHub上检查该插件,也可以在flutter/dart包中找到。

Github Facebook Instagram LinkedIn YouTube

如何使用

依赖它,在flutter中运行以下命令:

$ flutter pub add uddoktapay

这将在您的包的pubspec.yaml文件中添加一行(并隐式运行flutter pub get):

dependencies:  
  uddoktapay: ^0.0.3

或者,您的编辑器可能支持flutter pub get。查阅您的编辑器文档以了解更多信息。导入它,现在可以在您的Dart代码中使用:

import 'package:uddoktapay/uddoktapay.dart';
import 'package:uddoktapay/models/customer_model.dart';

功能

  • 使用UddoktaPay支付

使用方法

官方链接用于API文档和演示检查

支付

沙箱模式

UddoktaPay.createPayment(
  context: context,
  customer: CustomerDetails(
    fullName: 'Programming Wormhole',
    email: 'programmingwormhole@icloud.com',
  ),
  amount: '50',
);

生产模式

UddoktaPay.createPayment(
  context: context,
  customer: CustomerDetails(
    fullName: 'Programming Wormhole',
    email: 'programmingwormhole@icloud.com',
  ),
  amount: '50',
  credentials: UddoktapayCredentials(
    apiKey: 'api_key',
    panelURL: 'https://pay.domain.com',
  ),
)

确保用您自己的UddoktaPay生产凭证替换提供的凭证。

响应

final response = await UddoktaPay.createPayment(
  ....
  ....
)

响应示例

RequestResponse(
  fullName: "Programming Wormhole",
  email: "programmingwormhole@icloud.com",
  amount: "50.00",
  fee: "0.00",
  chargedAmount: "50.00",
  invoiceId: "a19Aun0gPxIqBVjnCfpL",
  paymentMethod: "bkash",
  senderNumber: "675675656765",
  transactionId: "FGHGFHJGHG",
  date: "2024-04-09 12:01:28",
  status: ResponseStatus.completed,
);

错误处理

上述方法可能会抛出status。您可以使用if-else块捕获并处理状态:

if (response.status == ResponseStatus.completed) {
  // 处理完成状态
}

if (response.status == ResponseStatus.canceled) {
  // 处理取消状态
}

if (response.status == ResponseStatus.pending) {
  // 处理待处理状态
}

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用uddoktapay支付插件的示例代码。假设你已经有一个Flutter项目,并且已经配置好了基本的开发环境。

1. 添加依赖

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

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

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

2. 配置Android和iOS

根据uddoktapay插件的文档,你可能需要在AndroidManifest.xmlInfo.plist中进行一些配置。具体配置请参考官方文档,这里假设你已经完成了这些配置。

3. 使用UddoktaPay插件

在你的Flutter项目中,你可以按照以下方式使用uddoktapay插件进行支付操作。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('UddoktaPay Demo'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: _startPayment,
            child: Text('Start Payment'),
          ),
        ),
      ),
    );
  }

  Future<void> _startPayment() async {
    try {
      // 配置支付参数,这里仅为示例,请根据实际情况填写
      final UddoktaPayOptions options = UddoktaPayOptions(
        merchantId: 'your_merchant_id', // 替换为你的商户ID
        amount: '100.00', // 支付金额
        currency: 'USD', // 货币类型
        orderId: 'order_${DateTime.now().millisecondsSinceEpoch}', // 订单ID,唯一标识
        successUrl: 'https://yourwebsite.com/success', // 支付成功跳转URL
        failUrl: 'https://yourwebsite.com/fail', // 支付失败跳转URL
        // 其他可选参数根据需求配置
      );

      // 调用支付方法
      final UddoktaPayResult result = await UddoktaPay.startPayment(options);

      // 处理支付结果
      if (result.status == UddoktaPayStatus.success) {
        showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              title: Text('Payment Successful'),
              content: Text('Payment ID: ${result.paymentId}'),
              actions: <Widget>[
                TextButton(
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                  child: Text('OK'),
                ),
              ],
            );
          },
        );
      } else if (result.status == UddoktaPayStatus.failed) {
        showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              title: Text('Payment Failed'),
              content: Text('Error: ${result.errorMessage}'),
              actions: <Widget>[
                TextButton(
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                  child: Text('OK'),
                ),
              ],
            );
          },
        );
      } else if (result.status == UddoktaPayStatus.canceled) {
        showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              title: Text('Payment Canceled'),
              content: Text('Payment was canceled by the user.'),
              actions: <Widget>[
                TextButton(
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                  child: Text('OK'),
                ),
              ],
            );
          },
        );
      }
    } catch (e) {
      // 处理异常
      showDialog(
        context: context,
        builder: (BuildContext context) {
          return AlertDialog(
            title: Text('Error'),
            content: Text('An error occurred: $e'),
            actions: <Widget>[
              TextButton(
                onPressed: () {
                  Navigator.of(context).pop();
                },
                child: Text('OK'),
              ),
            ],
          );
        },
      );
    }
  }
}

注意事项

  1. 依赖版本:确保你使用的是uddoktapay插件的最新稳定版本。
  2. 支付参数:根据实际情况填写支付参数,如merchantIdamountcurrency等。
  3. 错误处理:在实际应用中,你应该添加更详细的错误处理逻辑,以提供更好的用户体验。
  4. 支付回调:根据你的业务逻辑,处理支付成功、失败和取消后的回调。

希望这个示例能帮助你顺利地在Flutter项目中使用uddoktapay支付插件。如果你有任何其他问题,欢迎继续提问。

回到顶部