Flutter支付插件ariyanpay的使用

Flutter支付插件ariyanpay的使用


Ariyanpay支付网关Flutter插件 By Ariyan Shipu

Pub
License
PRs Welcome Maintenance
Open Source Love svg1

这是一个Flutter插件,用于Ariyanpay支付网关。此插件可以在Flutter项目中使用。Ariyan Shipu在为一个项目工作时创建了该插件,并决定将其发布出来以帮助更多的人。

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

请检查GitHub上的包,并且它也可以在flutter/dart包中找到。

Github Facebook Instagram LinkedIn YouTube

如何使用: #

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

$ flutter pub add ariyanpay  

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

dependencies:  
  ariyanpay: ^0.0.3

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

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

功能 #

  • 使用Ariyanpay支付

用法 #

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

付款 #

沙箱模式

Ariyanpay.createPayment(  
  context: context,  
  customer: CustomerDetails(  
    fullName: 'Ariyan Shipu',  
  ),  
  amount: '50', 
  valueA: '',
  valueB: '',
  valueC: '',
  valueD: '',
  valueE: '',
  valueF: '',
  valueG: '',
);

生产模式

Ariyanpay.createPayment(  
  context: context,  
  customer: CustomerDetails(  
    fullName: 'Ariyan Shipu',  
  ),  
  amount: '50',   
)

确保替换提供的凭证为您的Ariyanpay生产凭证。

响应

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

响应示例

RequestResponse(  
  fullName: "Ariyan Shipu",  
  email: "ariyanshipuofficial@gmail.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.success == "true") {  
  // 处理完成
}  

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

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

示例可在/example文件夹中查看。

重要提示 #

贡献 #

核心维护者

欢迎对ariyanpay包进行贡献。在提交您的拉取请求之前,请注意以下指导原则。

  • 遵循Effective Dart: Style编码标准。
  • 先阅读Ariyanpay API文档。请联系Ariyanpay获取其API文档和沙箱访问权限。

许可证 #

ariyanpay包受BSD 3-Clause 许可证保护。

版权所有 2024 Ariyan Shipu。我们与Ariyanpay无关,不提供任何保证。


完整示例代码

example/lib/main.dart

// ignore_for_file: use_build_context_synchronously

import 'package:flutter/material.dart';
import 'package:ariyanpay/models/customer_model.dart';
import 'package:ariyanpay/models/request_response.dart';
import 'package:ariyanpay/ariyanpay.dart';
import 'package:ariyanpay/widget/custom_snackbar.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

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

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _email = TextEditingController();
  final _name = TextEditingController();
  final _key = GlobalKey<FormState>();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('ariyanpay 示例'),
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(15.0),
          child: Form(
            key: _key,
            child: Column(
              children: [
                TextFormField(
                  validator: (p0) {
                    if (p0!.isEmpty) {
                      return '字段不能为空';
                    }
                    return null;
                  },
                  controller: _name,
                  decoration: const InputDecoration(
                    hintText: '全名',
                  ),
                ),
                const SizedBox(
                  height: 5,
                ),
                TextFormField(
                  validator: (p0) {
                    if (p0!.isEmpty) {
                      return '字段不能为空';
                    }
                    return null;
                  },
                  controller: _email,
                  decoration: const InputDecoration(
                    hintText: '电子邮件',
                  ),
                ),
                const SizedBox(
                  height: 15,
                ),
                ElevatedButton(
                  onPressed: () async {
                    if (_key.currentState!.validate()) {
                      final response = await Ariyanpay.createPayment(
                        context: context,
                        customer: CustomerDetails(
                          fullName: _name.text,
                          cusPhone: '0181111111',
                        ),
                        amount: '50',
                        valueA: '',
                        valueB: '',
                        valueC: '',
                        valueD: '',
                        valueE: '',
                        valueF: '',
                        valueG: '',
                      );

                      if (response.status == ResponseStatus.completed) {
                        // 处理成功
                        snackBar('成功. TRX_ID ${response.invoiceId}', context);
                      }

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

                      if (response.status == ResponseStatus.pending) {
                        // 处理待处理
                      }
                    }
                  },
                  child: const Text('发起支付'),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


ariyanpay 是 Flutter 的一个支付插件,通常用于集成支付功能到 Flutter 应用中。以下是如何使用 ariyanpay 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  ariyanpay: ^1.0.0  # 请检查最新的版本号

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

2. 导入插件

在你的 Dart 文件中导入 ariyanpay 插件。

import 'package:ariyanpay/ariyanpay.dart';

3. 初始化支付

在使用支付功能之前,通常需要初始化支付插件。你可以使用 AriyanPay 类的 initialize 方法来进行初始化。

AriyanPay.initialize(
  apiKey: 'your_api_key_here',
  merchantId: 'your_merchant_id_here',
);

4. 发起支付

使用 AriyanPay 类的 startPayment 方法来发起支付。你需要提供订单信息、回调函数等。

AriyanPay.startPayment(
  amount: 1000, // 支付金额
  currency: 'USD', // 货币类型
  orderId: 'order_123', // 订单ID
  description: 'Payment for order #123', // 订单描述
  onSuccess: (paymentId) {
    print('Payment successful. Payment ID: $paymentId');
  },
  onError: (error) {
    print('Payment failed. Error: $error');
  },
);

5. 处理支付结果

startPayment 方法提供了 onSuccessonError 回调函数来处理支付结果。你可以在这些回调函数中处理支付成功或失败的情况。

6. 测试支付

在开发过程中,你可以使用测试环境的 API key 和 Merchant ID 来测试支付功能,确保一切工作正常。

7. 发布应用

在发布应用之前,请确保你已经使用了生产环境的 API key 和 Merchant ID,并且已经正确处理了支付回调。

注意事项

  • 确保你已经在 ariyanpay 的开发者平台上注册并获取了 API key 和 Merchant ID。
  • 确保你的应用已经正确处理了支付回调,以避免支付状态不一致的问题。
  • 在生产环境中,务必使用 HTTPS 来确保支付信息的安全性。

示例代码

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

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

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

class PaymentScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('AriyanPay Payment'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            AriyanPay.initialize(
              apiKey: 'your_api_key_here',
              merchantId: 'your_merchant_id_here',
            );

            AriyanPay.startPayment(
              amount: 1000,
              currency: 'USD',
              orderId: 'order_123',
              description: 'Payment for order #123',
              onSuccess: (paymentId) {
                print('Payment successful. Payment ID: $paymentId');
              },
              onError: (error) {
                print('Payment failed. Error: $error');
              },
            );
          },
          child: Text('Pay Now'),
        ),
      ),
    );
  }
}
回到顶部