Flutter支付功能插件aba_payment的使用
Flutter支付功能插件aba_payment的使用
插件简介
aba_payment 是一个用于在 Flutter 应用程序中轻松集成 ABA 支付服务的插件。该插件通过 WebView 嵌入网页内容进行支付处理,并使用 url_launcher 打开 iOS 和 Android 的支付方案。
支持版本
- Android 最低 SDK 版本: 21
- iOS 最低目标版本: 12
支持的支付选项
- 信用卡/借记卡(依赖于
flutter_inappwebview) - ABA 支付方式移动应用(依赖于
url_launcher)
类
以下是插件中包含的主要类及其用途:
-
ABAClientHelper- 负责处理 HTTP 请求以创建任何交易。
- 文件路径: ABAClientHelper
-
ABATransaction- 用于实例化任何交易对象。
- 文件路径: ABATransaction
-
ABAServerResponse- 表示每次创建交易过程的响应对象。
- 文件路径: ABAServerResponse
-
ABAMerchant- 表示商户对象。
- 文件路径: ABAMerchant
小部件
ABACheckoutContainer()- 一个完整的控件,允许用户轻松将 ABA 支付集成到他们的 Flutter 应用程序中。
- 文件路径: ABACheckoutContainer
可用方法
以下是与支付相关的事件触发器:
// 当用户按下结账按钮时触发
onBeginCheckout(ABATransaction transaction);
// 当结账完成后成功创建交易时触发
onFinishCheckout(ABATransaction transaction);
// 当用户完成支付并开始检查当前交易是否成功或失败时触发
onBeginCheckTransaction(ABATransaction transaction);
// 当用户完成支付且当前交易检查事件结束时触发
onFinishCheckTransaction(ABATransaction transaction);
// 当支付成功时触发
onPaymentSuccess(ABATransaction transaction);
// 当支付失败时触发
onPaymentFail(ABATransaction transaction);
示例代码
以下是一个完整的示例代码,展示如何在 Flutter 中使用 aba_payment 插件:
import 'package:aba_payment/aba_payment.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 加载环境变量
await dotenv.load(fileName: ".env");
// 初始化商户信息
PaywayTransactionService.ensureInitialized(ABAMerchant(
merchantID: dotenv.get('ABA_PAYWAY_MERCHANT_ID'),
merchantApiName: dotenv.get('ABA_PAYWAY_MERCHANT_NAME'),
merchantApiKey: dotenv.get('ABA_PAYWAY_API_KEY'),
baseApiUrl: dotenv.get('ABA_PAYWAY_API_URL'),
refererDomain: "https://mylekha.app",
));
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: "ABA Payment Testing",
debugShowCheckedModeBanner: false,
home: CartScreen(), // 启动购物车页面
);
}
}
class CartScreen extends StatelessWidget {
final double _total = 100.0;
final double _shipping = 10.0;
final String _firstname = "John";
final String _lastname = "Doe";
final String _email = "john.doe@example.com";
final String _phone = "1234567890";
final List<Map<String, dynamic>> _items = [
{"name": "Product 1", "price": 50.0},
{"name": "Product 2", "price": 50.0},
];
final String _checkoutApiUrl = "https://your-api-url.com/checkout";
final ABAMerchant _merchant = ABAMerchant(
merchantID: "your_merchant_id",
merchantApiName: "your_api_name",
merchantApiKey: "your_api_key",
baseApiUrl: "https://your-base-api-url.com",
refererDomain: "https://your-domain.com",
);
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("ABA Payment Example"),
),
body: Center(
child: ABACheckoutContainer(
amount: _total,
shipping: _shipping,
firstname: _firstname,
lastname: _lastname,
email: _email,
phone: _phone,
items: _items.map((e) => e).toList(),
checkoutApiUrl: _checkoutApiUrl,
merchant: _merchant,
onBeginCheckout: (transaction) {
EasyLoading.show(status: 'Loading...');
},
onFinishCheckout: (transaction) {
EasyLoading.dismiss();
},
onBeginCheckTransaction: (transaction) {
EasyLoading.show(status: 'Checking Transaction...');
},
onFinishCheckTransaction: (transaction) {
EasyLoading.dismiss();
},
onPaymentSuccess: (transaction) {
EasyLoading.showSuccess('Payment Successful!');
},
onPaymentFail: (transaction) {
EasyLoading.showError('Payment Failed!');
},
),
),
);
}
}
更多关于Flutter支付功能插件aba_payment的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复


