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

1 回复

更多关于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
回到顶部