flutter如何集成银联支付

在Flutter项目中如何集成银联支付功能?需要添加哪些依赖库,以及具体的实现步骤是什么?是否有官方推荐的插件或SDK?另外,在Android和iOS平台上配置时需要注意哪些关键点?求详细的集成教程或示例代码。

2 回复

Flutter集成银联支付步骤:

  1. 引入flutter_unionpay插件。
  2. 配置Android和iOS的URL Scheme及白名单。
  3. 调用插件API发起支付请求。
  4. 处理支付结果回调。

注意:需先在银联商务平台注册应用并获取TN(交易流水号)。

更多关于flutter如何集成银联支付的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成银联支付,可以通过以下步骤实现:

1. 添加依赖

pubspec.yaml 文件中添加银联官方或第三方插件依赖:

dependencies:
  union_pay: ^3.0.0  # 以实际最新版本为准

运行 flutter pub get 安装依赖。

2. 配置平台参数

Android 配置:

  • AndroidManifest.xml 中添加权限和支付Activity:
<uses-permission android:name="android.permission.INTERNET"/>
<activity
    android:name="com.unionpay.uppay.PayActivity"
    android:configChanges="orientation|keyboardHidden|navigation"
    android:excludeFromRecents="true"
    android:launchMode="singleTop"/>

iOS 配置:

  • Info.plist 中添加白名单:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>uppaywallet</string>
    <string>uppayx1</string>
    <string>uppayx2</string>
    <string>uppayx3</string>
</array>
  • AppDelegate.swift 中处理回调URL。

3. 调用支付接口

在Dart代码中调用支付方法:

import 'package:union_pay/union_pay.dart';

// 启动支付
void startPay(String tn, bool isDebug) async {
  try {
    final result = await UnionPay.pay(
      tn: tn,           // 交易流水号,由后台生成
      mode: isDebug ? "01" : "00",  // 00生产环境,01测试环境
    );
    // 处理支付结果
    if (result == 'success') {
      // 支付成功
    } else if (result == 'fail') {
      // 支付失败
    } else if (result == 'cancel') {
      // 用户取消
    }
  } catch (e) {
    print('支付异常: $e');
  }
}

4. 注意事项

  • 交易流水号(tn):需由服务端调用银联接口生成,客户端仅负责发起支付。
  • 环境配置:测试时使用银联提供的测试商户号,上线前切换为正式环境。
  • 回调处理:确保正确配置URL Scheme(iOS)和Intent Filter(Android)以处理支付结果返回。

5. 推荐方案

若官方插件维护不及时,可考虑使用第三方封装更完善的插件(如 fluwx 支持多渠道支付),或通过 webview 加载银联H5支付页实现。

通过以上步骤即可完成银联支付的基础集成。实际开发中请参考银联最新文档和插件说明进行调整。

回到顶部