Flutter如何集成微信支付SDK

在Flutter项目中集成微信支付SDK时遇到困难,官方文档对Flutter的说明不够详细。具体问题如下:

  1. 如何正确配置Android和iOS端的微信支付依赖?是否需要单独处理原生平台的代码?
  2. Flutter端调用微信支付时,如何实现订单参数传递和支付结果回调?
  3. 是否有推荐的插件或完整示例代码可以参考?

目前测试时Android端一直返回-1(未注册APPID),但配置检查无误,可能遗漏了哪些关键步骤?

2 回复

在Flutter中集成微信支付SDK,需先安装fluwx插件,配置Android和iOS的AppID与Universal Links。在代码中初始化并调用支付API即可。

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


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

1. 申请微信支付商户资质

  • 注册微信开放平台账号并完成开发者认证
  • 申请微信支付功能,获取AppID、商户号(MCHID)和API密钥

2. 添加依赖

pubspec.yaml中添加微信支付插件:

dependencies:
  fluwx: ^3.15.0  # 推荐使用fluwx插件

3. 配置Android端

AndroidManifest.xml中添加:

<activity
    android:name="com.tencent.mm.opensdk.openapi.WXAPIFactory"
    android:exported="true" />

build.gradle中设置minSdkVersion至少21

4. 配置iOS端

Info.plist中添加URL Types:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>weixin</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>wx你的AppID</string>
        </array>
    </dict>
</array>

5. Flutter代码实现

初始化:

import 'package:fluwx/fluwx.dart' as fluwx;

await fluwx.registerWxApi(
    appId: "你的AppID",
    universalLink: "iOS通用链接");

发起支付:

void wechatPay() {
  final response = await fluwx.payWithWeChat(
    appId: "你的AppID",
    partnerId: "商户号",
    prepayId: "预支付交易会话ID",
    packageValue: "Sign=WXPay",
    nonceStr: "随机字符串",
    timeStamp: "时间戳",
    sign: "签名");
  
  // 监听支付结果
  fluwx.weChatResponseEventHandler.listen((res) {
    if (res is fluwx.WeChatPaymentResponse) {
      if (res.isSuccessful) {
        // 支付成功
      } else {
        // 支付失败
      }
    }
  });
}

6. 注意事项

  • 签名需要在服务端生成,避免泄露API密钥
  • iOS需要配置Universal Links
  • 支付参数需要从服务端获取
  • 测试时使用真实的微信支付测试环境

7. 服务端配合

需要在服务端实现:

  • 生成预支付订单
  • 生成支付签名
  • 处理支付回调

这样就能在Flutter应用中成功集成微信支付功能了。

回到顶部