Flutter开发使用fluwx插件实现微信支付,代码量不多,复杂的是安卓和iOS的各种配置。
在 pubspec.yaml 文件中添加fluwx依赖
fluwx: ^4.5.5
使用方法
通过fluwx注册微信Api
await Fluwx().registerApi(appId: 'wxea7a1c53d9e5849d', universalLink: 'https://your.univerallink.com/');
调用支付,参数由接口请求得到
await fluwx.pay(
which: Payment(
appId: result['appid'],
partnerId: result['partnerid'],
prepayId: result['prepayid'],
packageValue: result['package'],
nonceStr: result['noncestr'],
timestamp: int.parse(result['timestamp']),
sign: result['sign']),
);
iOS端的配置
iOS微信支付的官方配置文档
建议先看一遍官方文档,以下是我总结的几个步骤:
1、配置项目的Universal Link,需和微信开放平台配置的保持一致;
2、Xcode打开Associated Domains开关,添加Universal Link域名;
3、使用CocoaPods集成WechatOpenSDK;
4、在 Xcode 中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type”添加“URL scheme”为你所注册的应用程序 id;
5、在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在 “info”标签栏的“LSApplicationQueriesSchemes”添加weixin、weixinULAPI、weixinURLParamsAPI(如下图所示)。
安卓端的配置
安卓的微信支付官方配置文档
建议先看一遍官方文档,以下是我总结的几个步骤:
1、在 app文件夹的build.gradle 文件中,添加如下依赖
dependencies {
api 'com.tencent.mm.opensdk:wechat-sdk-android:+'
}
2、由于 jCenter 服务关停,需要修改成引用 Maven Central,在项目的根 build.gradle 文件中,添加如下代码
buildscript {
repositories {
jcenter() // 原有 jCenter 引用可继续保留
mavenCentral()
}
}
allprojects {
repositories {
jcenter() // 原有 jCenter 引用可继续保留
mavenCentral()
}
}
3、在 AndroidManifest.xml 文件里面加上exported、taskAffinity及launchMode属性,其中exported设置为true,taskAffinity设置为你的包名,launchMode设置为singleTask
<activity
android:name=".wxapi.WXEntryActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="true"
android:taskAffinity="填写你的包名"
android:launchMode="singleTask">
</activity>
4、获取应用的签名,填写到到微信开放平台,确认应用包名一致。
官方获取安卓APP签名的应用,最下面有个签名生成工具