Flutter集成Inai平台插件inai_flutter_sdk的使用
Flutter集成Inai平台插件inai_flutter_sdk的使用
简介
inai-flutter-sdk
是一个用于在 Flutter 应用程序中集成 Inai 平台的插件。它提供了多种方法来处理与支付相关的操作。
本地设置
在 pubspec.yaml
文件中相对引用 Inai Flutter SDK 库:
inai_flutter_sdk:
path: ../inai_flutter_sdk
安装
在 pubspec.yaml
文件中,在 dependencies
下添加以下依赖项:
inai_flutter_sdk: 0.1.6
初始化
为了使用 SDK 的接口,需要创建一个 InaiCheckout
对象实例。
// 创建 InaiCheckout 实例
InaiCheckout checkout = InaiCheckout(config);
配置参数
InaiConfig
对象必须传递给 checkout
实例。InaiConfig
包含以下参数:
变量 | 描述 |
---|---|
token | 可以从仪表盘的设置 > 凭证中获得的客户端用户名 |
orderId | 订单 ID,由商户后端生成的 Inai 订单 |
countryCode | 应指定为 ISO 3166-1 alpha-3 国家代码 |
styles | 可选样式对象,用于自定义结账页面上的各种 UI 元素 |
locale | 添加到被调用的 SDK 方法的本地化,例如 “en” 表示英语,“fr” 表示法语 |
// 创建样式对象
InaiConfigStyles styles = InaiConfigStyles(
container: InaiConfigStylesContainer(backgroundColor: "#fff"),
cta: InaiConfigStylesCta(backgroundColor: "#123456")
);
// 创建配置对象
InaiConfig config = InaiConfig(
token: "token",
orderId: "orderId",
countryCode: "countryCode",
locale: "locale",
styles: styles
);
结账方式
Drop-In 结账
展示结账界面
展示客户可以使用的配置好的支付方法选项列表。
final result = await checkout.presentCheckout(context: context);
String resultStr = "";
switch (result.status) {
case InaiStatus.success:
// 处理支付成功
break;
case InaiStatus.failed:
// 处理支付失败
break;
case InaiStatus.canceled:
// 处理支付取消
break;
}
展示添加支付方法界面
展示客户可以选择并保存支付方法的界面。一旦保存,返回的 payment_method_id
可用于后续支付,避免每次支付请求时重复输入支付详情。
final result = await checkout.addPaymentMethod(type: "card", context: context);
switch (result.status) {
case InaiStatus.success:
// 处理支付成功
break;
case InaiStatus.failed:
// 处理支付失败
break;
case InaiStatus.canceled:
// 处理支付取消
break;
}
使用已保存的支付方法进行支付
当客户已经保存了一个支付方法时,可以使用 payment_method_id
来调用 presentPayWithPaymentMethod
接口。这可以让客户利用已保存的 payment_method_id
进行快速结账。
final result = await checkout.presentPayWithPaymentMethod(paymentMethodId: "<paymentMethodId>", context: context);
switch(result.status) {
case InaiStatus.success:
// 处理支付成功
break;
case InaiStatus.failed:
// 处理支付失败
break;
case InaiStatus.canceled:
// 处理支付取消
break;
}
Headless 结账
验证字段
此接口用于验证客户输入的支付详细信息。
var paymentMethodOption = "card";
var paymentDetails = {
"fields": [
{"name": "number", "value": "5123456789012346"},
{"name": "cvc", "value": "123"},
{"name": "expiry", "value": "12/25"},
{"name": "holder_name", "value": "John Doe"},
{"name": "contact_number", "value": "01010101010"},
{"name": "first_name", "value": "John"},
{"name": "last_name", "value": "Doe"},
{"name": "contact_email", "value": "customer@example.com"}
]
};
final result = await checkout.validateFields(
paymentMethodOption: paymentMethodOption,
context: context,
paymentDetails: paymentDetails
);
switch (result.status) {
case InaiStatus.success:
// 处理支付成功
break;
case InaiStatus.failed:
// 处理支付失败
break;
case InaiStatus.canceled:
// 处理支付取消
break;
}
执行支付
此接口用于执行无界面的支付。
var paymentMethodOption = "card";
var paymentDetails = {
"fields": [
{"name": "number", "value": "5123456789012346"},
{"name": "cvc", "value": "123"},
{"name": "expiry", "value": "12/25"},
{"name": "holder_name", "value": "John Doe"},
{"name": "contact_number", "value": "01010101010"},
{"name": "first_name", "value": "John"},
{"name": "last_name", "value": "Doe"},
{"name": "contact_email", "value": "customer@example.com"}
]
};
final result = await checkout.makePayment(
paymentMethodOption: paymentMethodOption,
context: context,
paymentDetails: paymentDetails
);
switch (result.status) {
case InaiStatus.success:
// 处理支付成功
break;
case InaiStatus.failed:
// 处理支付失败
break;
case InaiStatus.canceled:
// 处理支付取消
break;
}
更多关于Flutter集成Inai平台插件inai_flutter_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Inai平台插件inai_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
要在Flutter项目中集成Inai平台的插件 inai_flutter_sdk
,你可以按照以下步骤进行操作:
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 inai_flutter_sdk
的依赖:
dependencies:
flutter:
sdk: flutter
inai_flutter_sdk: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化 SDK
在你的应用程序启动时,初始化 inai_flutter_sdk
。通常,你可以在 main.dart
文件中进行初始化:
import 'package:flutter/material.dart';
import 'package:inai_flutter_sdk/inai_flutter_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Inai SDK
await InaiSdk.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
environment: InaiEnvironment.sandbox, // 使用沙盒环境或生产环境
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Inai Flutter SDK Example',
home: HomeScreen(),
);
}
}
3. 使用 SDK
在你的应用程序中,你可以使用 inai_flutter_sdk
提供的功能。例如,发起支付、处理支付结果等。
import 'package:flutter/material.dart';
import 'package:inai_flutter_sdk/inai_flutter_sdk.dart';
class HomeScreen extends StatelessWidget {
Future<void> _initiatePayment() async {
try {
final paymentResponse = await InaiSdk.initiatePayment(
amount: 1000, // 支付金额
currency: 'USD', // 货币类型
orderId: 'ORDER123', // 订单ID
customerId: 'CUSTOMER123', // 客户ID
);
// 处理支付结果
print('Payment Response: $paymentResponse');
} catch (e) {
// 处理错误
print('Error: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Inai Flutter SDK Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _initiatePayment,
child: Text('Initiate Payment'),
),
),
);
}
}
4. 处理支付回调
inai_flutter_sdk
可能会提供支付回调功能,你可以监听支付结果并处理相应的业务逻辑。
InaiSdk.setPaymentListener((paymentStatus) {
// 处理支付状态
print('Payment Status: $paymentStatus');
});
5. 其他功能
根据 inai_flutter_sdk
的文档,你还可以使用其他功能,例如获取支付历史、取消支付等。请参考官方文档以获取更多详细信息。
6. 运行应用程序
完成上述步骤后,你可以运行你的 Flutter 应用程序并测试 inai_flutter_sdk
的集成。
flutter run