Flutter支付集成插件bundle_rave_pay的使用
Flutter支付集成插件bundle_rave_pay的使用
开始使用
此项目是一个用于Flutter的插件包,它包含针对Android和/或iOS平台的特定实现代码。
获取开始
对于Flutter的新手来说,可以查看我们的在线文档,其中提供了教程、示例、移动开发指南以及完整的API参考。
示例代码
以下是一个完整的示例,展示了如何在Flutter应用中使用bundle_rave_pay
插件进行支付集成:
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:math';
import 'package:flutter/services.dart';
import 'package:bundle_rave_pay/bundle_rave_pay.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var result;
[@override](/user/override)
void initState() {
super.initState();
// 初始化插件状态
initPlatformState();
}
// 生成随机字符串
String _randomString(int length) {
var rand = new Random();
var codeUnits = new List.generate(
length,
(index){
return rand.nextInt(33)+89;
}
);
return new String.fromCharCodes(codeUnits);
}
// 初始化插件状态
Future<void> initPlatformState() async {
try {
// 构建卡片信息
var cardBody = {
"amount": "250",
"cvv": "564",
"cardExpiry": "09/22",
"cardNumber": "5531886652142950",
"saveCard": "true",
"country": "NG",
"currencyCode": "NGN",
"email": "hashilekky@gmail.com",
"firstName": "Oluwaleke",
"lastName": "Fakorede",
"transactionReference": _randomString(12),
"isLive": "false",
// 更新密钥后运行应用
"publicKey": "FLWPUBK_TEST-85cf4d8da93192c75d63ca7978592de2-X",
"encryptionKey": "FLWSECK_TEST24303b8618e7",
"narration": "Bundle Wallet Technology Ltd",
"paymentMethod": "card",
};
// 初始化支付
result = await BundleRavePay.initializePayment(cardBody);
if (result != null && result['status'] == 'success') {
print("PAYMENT RESPONSE JSON IS SUCCESSFUL");
print(result);
} else {
print("NOT JSON");
print(result);
}
} on PlatformException {
print('Failed to get platform version.');
}
if (!mounted) return;
setState(() {
// _platformVersion = platformVersion;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: TextButton(
child: Text('点击进行支付'),
onPressed: () => initPlatformState(),
),
),
),
);
}
}
说明
-
导入必要的库:
import 'package:flutter/material.dart'; import 'dart:async'; import 'dart:math'; import 'package:flutter/services.dart'; import 'package:bundle_rave_pay/bundle_rave_pay.dart';
-
初始化插件状态:
[@override](/user/override) void initState() { super.initState(); initPlatformState(); }
-
生成随机字符串:
String _randomString(int length) { var rand = new Random(); var codeUnits = new List.generate( length, (index){ return rand.nextInt(33)+89; } ); return new String.fromCharCodes(codeUnits); }
-
构建卡片信息:
var cardBody = { "amount": "250", "cvv": "564", "cardExpiry": "09/22", "cardNumber": "5531886652142950", "saveCard": "true", "country": "NG", "currencyCode": "NGN", "email": "hashilekky@gmail.com", "firstName": "Oluwaleke", "lastName": "Fakorede", "transactionReference": _randomString(12), "isLive": "false", "publicKey": "FLWPUBK_TEST-85cf4d8da93192c75d63ca7978592de2-X", "encryptionKey": "FLWSECK_TEST24303b8618e7", "narration": "Bundle Wallet Technology Ltd", "paymentMethod": "card", };
-
初始化支付:
result = await BundleRavePay.initializePayment(cardBody);
-
处理支付结果:
if (result != null && result['status'] == 'success') { print("PAYMENT RESPONSE JSON IS SUCCESSFUL"); print(result); } else { print("NOT JSON"); print(result); }
更多关于Flutter支付集成插件bundle_rave_pay的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件bundle_rave_pay的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
bundle_rave_pay
是一个用于在 Flutter 应用中集成 Rave by Flutterwave 支付的插件。它允许开发者轻松地将 Rave 支付功能集成到他们的应用程序中。以下是如何使用 bundle_rave_pay
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 bundle_rave_pay
依赖:
dependencies:
flutter:
sdk: flutter
bundle_rave_pay: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入包
在你的 Dart 文件中导入 bundle_rave_pay
包:
import 'package:bundle_rave_pay/bundle_rave_pay.dart';
3. 初始化插件
在使用插件之前,你需要初始化它。通常,你可以在 main.dart
文件中进行初始化:
void main() {
WidgetsFlutterBinding.ensureInitialized();
RavePay.initialize(
publicKey: 'your_public_key', // 你的 Rave 公钥
encryptionKey: 'your_encryption_key', // 你的 Rave 加密密钥
isStaging: true, // 如果是在测试环境,设置为 true;生产环境设置为 false
);
runApp(MyApp());
}
4. 发起支付
在你的应用中,你可以通过调用 RavePay.checkout
方法来发起支付请求。你可以自定义支付参数,如金额、货币、客户信息等。
void _makePayment() async {
try {
final response = await RavePay.checkout(
context: context,
amount: 1000, // 支付金额
currency: 'NGN', // 货币类型
email: 'customer@example.com', // 客户邮箱
firstName: 'John', // 客户名
lastName: 'Doe', // 客户姓
narration: 'Payment for goods', // 支付描述
txRef: 'txRef12345', // 交易参考号
);
if (response.status == 'success') {
// 支付成功
print('Payment successful: ${response.transactionId}');
} else {
// 支付失败
print('Payment failed: ${response.message}');
}
} catch (e) {
// 处理异常
print('Error: $e');
}
}
5. 处理支付结果
RavePay.checkout
方法会返回一个 RaveResponse
对象,你可以通过检查 status
属性来判断支付是否成功。
6. 自定义 UI
你可以根据需要自定义支付界面的 UI。bundle_rave_pay
提供了多种自定义选项,包括主题颜色、按钮样式等。
RavePay.checkout(
context: context,
amount: 1000,
currency: 'NGN',
email: 'customer@example.com',
firstName: 'John',
lastName: 'Doe',
narration: 'Payment for goods',
txRef: 'txRef12345',
theme: RaveTheme(
primaryColor: Colors.blue,
buttonColor: Colors.green,
),
);
7. 处理回调
你可以通过 onSuccess
和 onError
回调来处理支付成功或失败的情况:
RavePay.checkout(
context: context,
amount: 1000,
currency: 'NGN',
email: 'customer@example.com',
firstName: 'John',
lastName: 'Doe',
narration: 'Payment for goods',
txRef: 'txRef12345',
onSuccess: (response) {
// 支付成功处理
print('Payment successful: ${response.transactionId}');
},
onError: (error) {
// 支付失败处理
print('Payment failed: $error');
},
);