Flutter支付插件alatpay_flutter的使用
Flutter支付插件alatpay_flutter的使用
AlatPay支付SDK
AlatPayFlutter
类是一个 Flutter 小部件,允许你在 Flutter 项目中集成 WEMA 银行的 AlatPay 支付网关。它提供了一个 WebView,加载包含交易详情的 AlatPay 支付页面。该类处理来自支付网关的响应,并提供了用于处理成功交易和错误的回调函数。该类需要 metaData
、businessId
、apiKey
和 amount
等参数来处理支付。它支持 Android、iOS 和 Web 平台。其他平台即将推出。
作者
特性
- 与 AlatPay 支付网关集成:
AlatPayFlutter
类允许你轻松地将 Moamalat 支付网关集成到你的 Flutter 应用中。 - WebView 集成:该类提供一个 WebView,加载 AlatPay 的支付页面并处理交易详情。
- 交易处理:该类处理来自支付网关的响应,并提供回调函数以处理成功交易和错误。
- 安全交易:该类生成 AlatPay 所需的安全哈希,确保交易安全。
- 可定制化:该类可定制,并允许你配置
apiKey
、businessId
、currency
、amount
和metaData
等参数以处理支付。
总的来说,AlatPayFlutter
类提供了一种方便且安全的方式将 AlatPay 支付网关集成到你的 Flutter 应用中。
文档
<code>businessId</code>
:从 AlatPay 获取的企业 ID。<code>amount</code>
:交易金额。<code>apiKey</code>
:从 AlatPay 获取的 API 密钥。<code>onTransaction</code>
:当支付成功完成时调用的回调函数。<code>onClose</code>
:当服务关闭时调用的回调函数。
安装
要使用此包,请在 pubspec.yaml
文件中添加 alatpay_flutter
作为依赖项。
dependencies:
alatpay_flutter: latest_version
示例
如何使用 alatpay_flutter
包
import 'dart:io';
import 'package:alatpay_flutter/alatpay_flutter.dart';
import 'package:flutter/material.dart';
import 'package:get/route_manager.dart';
import 'screens/success.dart';
import 'src/constants.dart';
import 'src/controllers.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是你的应用的根。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'AlatPay',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: kAccentColor),
useMaterial3: true,
),
home: const PaymentScreen(),
);
}
}
class PaymentScreen extends StatefulWidget {
const PaymentScreen({Key? key}) : super(key: key);
[@override](/user/override)
State<PaymentScreen> createState() => _PaymentScreenState();
}
class _PaymentScreenState extends State<PaymentScreen> {
// 布尔变量
bool isLoading = false;
// 函数
void pay() {
String apiKey = "alatPayPrimaryKey";
String businessId = "alatPayBuinessId";
String email = "johndoe@gmail.com";
String phone = "+2348047589684";
String firstName = "John";
String lastName = "Doe";
String currency = 'NGN';
String amount = "20000";
setState(() {
isLoading = true;
});
try {
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return AlatPayFlutter(
apiKey: apiKey,
businessId: businessId,
email: email,
phone: phone,
firstName: firstName,
lastName: lastName,
currency: currency,
amount: amount,
onClose: () {
Get.close(2);
},
onTransaction: (response) async {
// 处理成功交易
Get.to(const SuccessScreen());
},
);
}),
);
setState(() {
isLoading = false;
});
} on SocketException {
ApiProcessorController.errorSnack("请连接到互联网");
} catch (e) {
print(e.toString());
}
setState(() {
isLoading = false;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 10,
title: Text(
"AlatPay",
style: TextStyle(
color: Theme.of(context).appBarTheme.backgroundColor,
fontSize: 20,
fontWeight: FontWeight.w600,
),
),
),
body: SafeArea(
child: Center(
child: ElevatedButton(
onPressed: pay,
style: ElevatedButton.styleFrom(
disabledBackgroundColor: Colors.grey.shade300,
backgroundColor: Theme.of(context).primaryColor,
elevation: 10,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
shadowColor: Colors.black.withOpacity(0.4),
),
child: isLoading
? const Padding(
padding: EdgeInsets.all(10),
child: CircularProgressIndicator(color: Colors.white),
)
: const Text(
"立即支付",
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontFamily: "Sen",
fontWeight: FontWeight.w700,
),
),
),
),
),
);
}
}
更多关于Flutter支付插件alatpay_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付插件alatpay_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter项目中集成并使用alatpay_flutter
插件进行支付操作,可以遵循以下步骤。以下是一个简要的代码示例,展示如何集成和使用该插件。
1. 添加依赖
首先,在pubspec.yaml
文件中添加alatpay_flutter
依赖:
dependencies:
flutter:
sdk: flutter
alatpay_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来获取依赖。
2. 配置Android和iOS
根据alatpay_flutter
的官方文档,可能需要在AndroidManifest.xml
和Info.plist
中添加一些配置。具体配置请参考官方文档,因为这部分内容可能会随着插件版本的更新而变化。
3. 初始化插件并调用支付接口
在你的Flutter项目中,初始化alatpay_flutter
插件并调用支付接口。以下是一个简化的示例:
import 'package:flutter/material.dart';
import 'package:alatpay_flutter/alatpay_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('AlatPay Flutter Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
_initiatePayment();
},
child: Text('Pay Now'),
),
),
),
);
}
Future<void> _initiatePayment() async {
try {
// 替换为你的实际支付参数
String merchantId = 'your_merchant_id';
String amount = '100.00'; // 金额
String currency = 'USD'; // 货币单位
String orderId = 'order_${DateTime.now().millisecondsSinceEpoch}'; // 订单号
String description = 'Test Payment'; // 支付描述
String redirectUrl = 'https://yourwebsite.com/success'; // 支付成功后的回调URL
String notifyUrl = 'https://yourwebsite.com/notify'; // 支付通知URL
// 创建支付请求
AlatPayRequest request = AlatPayRequest(
merchantId: merchantId,
amount: amount,
currency: currency,
orderId: orderId,
description: description,
redirectUrl: redirectUrl,
notifyUrl: notifyUrl,
);
// 发起支付
AlatPayResponse response = await AlatPayFlutter.startPayment(request);
// 处理支付响应
if (response.status == 'success') {
// 支付成功处理逻辑
print('Payment successful!');
} else if (response.status == 'pending') {
// 支付待处理逻辑
print('Payment pending...');
} else {
// 支付失败处理逻辑
print('Payment failed: ${response.message}');
}
} catch (e) {
// 错误处理
print('Error initiating payment: $e');
}
}
}
// 定义AlatPayRequest和AlatPayResponse类(假设插件没有自带这些类)
class AlatPayRequest {
final String merchantId;
final String amount;
final String currency;
final String orderId;
final String description;
final String redirectUrl;
final String notifyUrl;
AlatPayRequest({
required this.merchantId,
required this.amount,
required this.currency,
required this.orderId,
required this.description,
required this.redirectUrl,
required this.notifyUrl,
});
}
class AlatPayResponse {
final String status;
final String message;
AlatPayResponse({
required this.status,
required this.message,
});
}
注意:
- 上面的
AlatPayRequest
和AlatPayResponse
类是基于假设创建的,因为实际插件可能会自带这些类或者有不同的数据结构。你需要根据alatpay_flutter
插件的实际API文档来调整这些类。 merchantId
,amount
,currency
,orderId
,description
,redirectUrl
, 和notifyUrl
等参数需要根据实际情况填写。- 确保你已经按照
alatpay_flutter
插件的官方文档在服务器端进行了相应的配置,以便能够正确处理支付通知和回调。
这个示例提供了一个基本的框架,你可以根据实际需求进行扩展和修改。