flutter如何实现fluwx支付回调

在Flutter中集成fluwx实现微信支付时,如何正确接收并处理支付回调?

我的配置流程如下:

  1. 已按照文档注册APPID并配置AndroidManifest.xml
  2. 支付功能可以正常调起
  3. 但支付成功/失败后无法触发回调

具体问题:

  • Android端是否需要额外配置IntentFilter?
  • iOS的UniversalLink回调如何验证?
  • 回调函数应该写在哪个生命周期?
  • 测试环境下如何模拟回调?

能否提供一个完整的回调处理示例代码?包括正确处理返回码和验签逻辑。

2 回复

在Flutter中,使用fluwx插件实现支付回调,需在AndroidManifest.xmlInfo.plist中配置回调页面,并在Flutter代码中监听onWeChatResponse事件,处理支付结果。

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


在 Flutter 中实现 Fluwx(微信支付)的回调,需通过 fluwx 插件处理支付结果。以下是步骤和示例代码:

1. 配置 Fluwx

pubspec.yaml 中添加依赖:

dependencies:
  fluwx: ^3.0.0

运行 flutter pub get 安装。

2. 初始化 Fluwx

main.dart 中初始化微信 SDK(需提前注册 AppID):

import 'package:fluwx/fluwx.dart';

void main() {
  runApp(MyApp());
  initFluwx();
}

void initFluwx() async {
  await fluwx.registerWxApi(
    appId: "你的微信AppID",
    doOnAndroid: true,
    doOnIOS: true,
  );
}

3. 发起支付并监听回调

支付完成后,通过 fluwx.responseFromPayment.listen 监听结果:

import 'package:fluwx/fluwx.dart';

// 发起支付(需后端生成订单参数)
void requestPayment() {
  fluwx.payWithWeChat(
    appId: "AppID",
    partnerId: "商户ID",
    prepayId: "预支付ID",
    packageValue: "扩展字段",
    nonceStr: "随机字符串",
    timeStamp: "时间戳",
    sign: "签名",
  );
}

// 监听支付回调
void initPaymentListener() {
  fluwx.responseFromPayment.listen((response) {
    if (response.isSuccessful) {
      print("支付成功");
      // 处理成功逻辑(如更新订单状态)
    } else {
      print("支付失败: ${response.errCode} - ${response.errStr}");
      // 处理失败逻辑
    }
  });
}

4. 在页面中调用

在 StatefulWidget 的 initState 中启动监听:

@override
void initState() {
  super.initState();
  initPaymentListener();
  // 触发支付:requestPayment();
}

注意事项:

  • 参数来源:支付参数(如 prepayIdsign)需由后端生成,确保安全性。
  • 错误码处理:参考微信官方文档处理 errCode(如用户取消支付为 -2)。
  • 生命周期:确保监听在页面销毁时正确关闭(如使用 StreamSubscription 管理)。

通过以上步骤,即可在 Flutter 中处理 Fluwx 支付回调。

回到顶部