Flutter支付集成插件elepay_flutter的使用

Flutter支付集成插件elepay_flutter的使用

elepay Flutter原生SDK(Android/iOS)的封装。

需求

此插件要求Flutter 3.0.0或更高版本。

从版本3.0.0开始,对于Android目标构建,minSdk需要为23。对于iOS目标构建,最低版本要求为iOS 12和Swift 5.7。

安装

在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  elepay_flutter: ^${latestVersion}

使用

导入

导入package:elepay_flutter/elepay_flutter.dart

初始化

通过ElepayFlutter.initElepay初始化elepay SDK。

处理数据

将数据(JSON对象字符串)传递给ElepayFlutter处理方法,并处理ElepayResult数据。

示例代码

import 'package:elepay_flutter/elepay_flutter.dart';

...

// 初始化elepay SDK。只需要第一个参数`publicKey`是必需的。
// 下面的例子还更改了elepay SDK UI的默认语言为`日语`。
var config = ElepayConfiguration(
  currentConfig['pk'],
  languageKey: ElepayLanguageKey.japanese);
ElepayFlutter.initElepay(config);

// 可以通过调用以下方法更改elepay SDK UI的默认语言。
// 默认情况下,elepay SDK会尽可能使用系统语言设置,并回退到英语。
// 注意:更改语言必须在elepay SDK初始化后且在调用`ElepayFlutter.handlePayment`之前进行。
ElepayFlutter.changeLanguage(ElepayLanguageKey.japanese);

// 还可以指定elepay SDK UI的颜色主题。
// 默认情况下,elepay SDK使用应用或系统的主题颜色。
// 注意:在iOS平台上,主题更改仅支持iOS 13及以上版本。
ElepayFlutter.changeTheme(ElepayTheme.dark);

...

// 通过调用elepay API创建收费数据(JSON对象)
// 然后将数据转换为String实例并传递给elepay SDK以处理支付。
//
// elepay SDK还支持source和checkout处理,相关方法为`handleSource`和`checkout`。
var res = await ElepayFlutter.handlePayment(chargePayload);
// 处理结果数据。
if (res is ElepayResultSucceeded) {
  print('成功。' + res.paymentId);
} else if (res is ElepayResultFailed) {
  print('失败:' + res.paymentId + ', code=' + res.code + ', reason=' + res.reason + ', message=' + res.message);
} else if (res is ElepayResultCancelled) {
  print('取消。' + res.paymentId);
}

原生回调

某些支付方式需要在其原生应用程序中处理支付。对于这些支付方式,你需要配置你的应用程序以能够处理回调。

查看elepay文档以了解哪些方法需要额外的配置。

Android

在加载ElepayFlutter的Activity中(通常是MainActivity),在AndroidManifest.xml文件中添加以下代码:

<intent-filter>
    <data android:scheme="Your-elepay-app-scheme" />
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

iOS

需要配置URL schemes。请参阅elepay iOS SDK文档以获取详细信息。

其他

在flutter 2.5.0与Android平台结合使用时,当使用checkout且支付处理需要跳转到其他应用程序或Activity时,返回到您的应用程序后,您的应用程序可能会显示一个黑色背景屏幕。您可以尝试向您的应用程序的MainActivity添加以下代码来解决此问题。

override fun getBackgroundMode(): FlutterActivityLaunchConfigs.BackgroundMode {
    return BackgroundMode.transparent
}

您可以通过查看此链接了解更多信息。


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

1 回复

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


elepay_flutter 是一个用于在 Flutter 应用中集成 Elepay 支付的插件。Elepay 是一个支持多种支付方式的支付平台,包括信用卡、支付宝、微信支付等。通过 elepay_flutter 插件,开发者可以轻松地在 Flutter 应用中集成 Elepay 支付功能。

以下是使用 elepay_flutter 插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 elepay_flutter 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  elepay_flutter: ^1.0.0  # 请使用最新版本

然后,运行 flutter pub get 来安装依赖。

2. 初始化 Elepay 支付

在应用的启动阶段,初始化 Elepay 支付插件。通常可以在 main.dart 文件中进行初始化:

import 'package:elepay_flutter/elepay_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Elepay 支付
  await Elepay.initialize(
    publicKey: 'YOUR_PUBLIC_KEY', // 替换为你的 Elepay 公钥
    isSandbox: true, // 是否使用沙盒环境
  );

  runApp(MyApp());
}

3. 创建支付请求

在需要发起支付的地方,创建一个支付请求对象 PaymentRequest,并调用 Elepay.startPayment 方法发起支付:

import 'package:elepay_flutter/elepay_flutter.dart';

void makePayment() async {
  final paymentRequest = PaymentRequest(
    amount: 1000, // 支付金额,单位为分
    currency: 'JPY', // 货币代码,例如 JPY 表示日元
    orderNo: 'ORDER_123456', // 订单号
    description: 'Test Payment', // 支付描述
    extra: {'key': 'value'}, // 额外的支付信息
  );

  try {
    final result = await Elepay.startPayment(paymentRequest);
    if (result.isSuccess) {
      print('Payment successful!');
    } else {
      print('Payment failed: ${result.errorMessage}');
    }
  } catch (e) {
    print('Payment error: $e');
  }
}
回到顶部