Flutter支付插件ariyanpay的使用
Flutter支付插件ariyanpay的使用
Ariyanpay支付网关Flutter插件 By Ariyan Shipu
这是一个Flutter插件,用于Ariyanpay支付网关。此插件可以在Flutter项目中使用。Ariyan Shipu在为一个项目工作时创建了该插件,并决定将其发布出来以帮助更多的人。
⚠️ 请注意,您需要联系Ariyanpay销售团队获取任何开发或生产访问密钥。我们不提供测试账户或访问密钥,也不接受此类咨询。
请检查GitHub上的包,并且它也可以在flutter/dart包中找到。
如何使用: #
依赖于它,在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 API 文档
贡献 #
核心维护者
欢迎对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
更多关于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
方法提供了 onSuccess
和 onError
回调函数来处理支付结果。你可以在这些回调函数中处理支付成功或失败的情况。
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'),
),
),
);
}
}