Flutter支付处理插件omise_dart的使用

Flutter支付处理插件omise_dart的使用

omise_dart 是一个用于集成Omise支付API的Dart包。它为Dart和Flutter应用程序提供了简单直观的接口来处理交易、创建费用和其他与支付相关的活动。

特性

  • 轻松地在Dart和Flutter中与Omise的API进行交互。
  • 支持令牌化功能。
  • 内置了常见的API问题处理。

开始使用

要使用该包,首先将其添加到你的项目中。在pubspec.yaml文件中加入以下内容:

dependencies:
  omise_dart: ^0.3.0

然后运行以下命令:

flutter pub get

如果你正在使用Dart-only项目,则运行:

dart pub get

你还需要一个Omise账户,并获取你的公钥和私钥。你可以通过访问 Omise Dashboard 来注册并获取这些信息。

使用方法

以下是一个使用omise_dart创建令牌的快速示例:

import 'package:omise_dart/omise_dart.dart';

void main() async {
  // 初始化Omise API,使用你的公钥和私钥
  final omiseApi = OmiseApi(
    publicKey: "p_key", // 替换为你的实际公钥
    secretKey: "s_key", // 替换为你的实际私钥
    enableDebug: true, // 启用调试日志
  );

  // 使用卡详情创建一个令牌
  final createTokenRequest = CreateTokenRequest(
    name: "Name",
    number: "4242424242424242", // 示例测试卡号
    expirationMonth: "09", // 卡过期月份
    expirationYear: "27", // 卡过期年份
  );

  // 调用Omise API创建一个令牌
  final token = await omiseApi.tokens.create(createTokenRequest);
}

示例

example/文件夹中,你会找到更全面的例子,展示各种使用场景,例如:

  • 创建令牌
  • 获取令牌
  • 获取能力对象

要运行这些例子,请执行以下步骤:

  1. 克隆仓库。
  2. 运行Dart示例:
dart run example/omise_dart_example.dart

完整示例代码

以下是完整的示例代码,展示了如何使用omise_dart插件创建令牌、获取令牌、创建源(source)和获取能力信息:

import 'package:omise_dart/omise_dart.dart';

Future<void> main() async {
  // 初始化Omise API,使用你的公钥和私钥
  final omiseApi = OmiseApi(
    publicKey: "your_public_key_here", // 替换为你的实际公钥
    secretKey: "your_secret_key_here", // 替换为你的实际私钥
    enableDebug: false, // 启用调试日志
  );

  // 使用卡详情创建一个令牌
  final createTokenRequest = CreateTokenRequest(
    name: "Name",
    number: "4242424242424242", // 示例测试卡号
    expirationMonth: "09", // 卡过期月份
    expirationYear: "27", // 卡过期年份
  );

  // 调用Omise API创建一个令牌
  final token = await omiseApi.tokens.create(createTokenRequest);

  print('Token created: ${token.id}');

  // 通过令牌ID获取令牌信息
  final retrievedToken = await omiseApi.tokens.get(token.id);

  print('Token retrieved: ${retrievedToken.id}');

  // 创建一个源(source)
  final createSourceRequest = CreateSourceRequest(
      name: "Name",
      amount: 2000,
      currency: Currency.thb,
      type: PaymentMethodName.promptpay);

  // 调用Omise API创建一个源
  final source = await omiseApi.sources.create(createSourceRequest);

  print('Source created: ${source.id}');

  // 通过源ID获取源信息
  final retrievedSource = await omiseApi.sources.get(source.id);

  print('Source retrieved: ${retrievedSource.id}');

  // 从Omise API获取能力信息
  final capability = await omiseApi.capability.get();

  print('Capability retrieved: ${capability.country}');
}

更多关于Flutter支付处理插件omise_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter支付处理插件omise_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


omise_dart 是一个用于在 Flutter 应用中处理支付的插件,它允许你与 Omise 支付网关进行交互。Omise 是一个流行的支付网关,支持信用卡、电子钱包和其他支付方式。以下是使用 omise_dart 插件的基本步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 omise_dart 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  omise_dart: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化 Omise

在你的 Dart 文件中,导入 omise_dart 并初始化 Omise 客户端。

import 'package:omise_dart/omise_dart.dart';

void main() {
  Omise omise = Omise(
    publicKey: 'your_public_key',
    secretKey: 'your_secret_key',
  );
}

3. 创建 Token

在进行支付之前,你需要创建一个支付 Token。这个 Token 代表了用户的支付信息。

Future<void> createToken() async {
  try {
    Token token = await omise.token.create(
      TokenCreateParams(
        name: 'John Doe',
        number: '4242424242424242',
        expirationMonth: 12,
        expirationYear: 2025,
        securityCode: '123',
      ),
    );

    print('Token created: ${token.id}');
  } catch (e) {
    print('Error creating token: $e');
  }
}

4. 创建 Charge

使用上一步生成的 Token 来创建一个 Charge,即实际的支付请求。

Future<void> createCharge() async {
  try {
    // 首先创建 Token
    Token token = await omise.token.create(
      TokenCreateParams(
        name: 'John Doe',
        number: '4242424242424242',
        expirationMonth: 12,
        expirationYear: 2025,
        securityCode: '123',
      ),
    );

    // 然后使用 Token 创建 Charge
    Charge charge = await omise.charge.create(
      ChargeCreateParams(
        amount: 100000,  // 金额,单位为泰铢的最小单位(如 100000 表示 1000 泰铢)
        currency: 'thb',
        card: token.id,
      ),
    );

    print('Charge created: ${charge.id}');
  } catch (e) {
    print('Error creating charge: $e');
  }
}

5. 处理支付结果

你可以根据 Charge 对象的状态来处理支付结果。

Future<void> handlePayment() async {
  try {
    Charge charge = await omise.charge.create(
      ChargeCreateParams(
        amount: 100000,
        currency: 'thb',
        card: 'tokn_XXXXXX',  // 使用之前创建的 Token
      ),
    );

    if (charge.status == 'successful') {
      print('Payment successful!');
    } else {
      print('Payment failed: ${charge.failureMessage}');
    }
  } catch (e) {
    print('Error handling payment: $e');
  }
}

6. 错误处理

在处理支付时,可能会遇到各种错误。你可以使用 try-catch 块来捕获并处理这些错误。

try {
  // 支付逻辑
} catch (e) {
  print('Error: $e');
}

7. 处理 Webhook(可选)

Omise 还支持 Webhook,用于在支付成功后通知你的服务器。你可以在 Omise 仪表板中设置 Webhook URL,并在服务器端处理这些通知。

8. 测试

在开发过程中,你可以使用 Omise 提供的测试密钥来进行测试。测试密钥不会产生实际的交易。

Omise omise = Omise(
  publicKey: 'pkey_test_XXXXXX',
  secretKey: 'skey_test_XXXXXX',
);

9. 发布

在发布应用之前,请确保将测试密钥替换为生产密钥。

Omise omise = Omise(
  publicKey: 'pkey_prod_XXXXXX',
  secretKey: 'skey_prod_XXXXXX',
);
回到顶部