序言
先在微信开放平台创建好app,按要求配置完成。
Flutter项目中配置
fluwx: ^1.2.1+1
Android项目中配置
在android中的gradle配置自己签名文件
将签名文件可以放入android中的根目录
signingConfigs {
release {
storeFile file("$rootDir/xxx.jks")
storePassword "666666"
keyAlias "xxx"
keyPassword "666666"
}
debug {
storeFile file("$rootDir/xxx.jks")
storePassword "666666"
keyAlias "xxx"
keyPassword "666666"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.debug
}
}
- 在app的gradle中依赖微信库
dependencies {
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}
- 在app的包下创建一个微信支付回调页面
public class WXPayEntryActivity extends Activity {
}
- 在根目录创建wxapi文件夹,将创建好的WXPayEntryActivity的页面放入。
- 在AndroidManifest中配置,放入application中即可
// 注意 xxx.xxx.xxx 为自己包名
// android:scheme="wx5c3f489a3bffbff1" 替换为自己在微信开放平台创建的app的应用id
<activity
android:name="xxx.xxx.xxx.wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="wx5c3f489a3bffbff1"/>
</intent-filter>
</activity>
// 注意看有没有配置权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Flutter项目中使用
void toWxPay() async {
var isInstalled = await fluwx.isWeChatInstalled();
if (!isInstalled) {
ToastUtil.toast("请先安装微信");
}
// 将下面这些参数替换成后台返回的即可
var payRes = await fluwx.pay(
appId: "wx5c3f489a3bffbff1",
partnerId: "1581194221",
prepayId: "wx20204148634195534427abd2eac5680000",
packageValue: "Sign=WXPay",
nonceStr: "QQZMB4ZQL3784HMKDBZVAGVATNY83I7U",
timeStamp: 1597927308,
sign: "327B443E4591CD2AD05C340CEE90CC2E",
);
// 支付回调
// 一般情况下打开微信支付闪退,errCode为 -1 ,多半是包名、签名和在微信开放平台创建时的配置不一致。
fluwx.responseFromPayment.listen((data) {
print(data.errCode);
if (data.errCode == 0) {
ToastUtil.toast("微信支付成功");
Navigator.of(context).pop();
} else {
ToastUtil.toast("微信支付失败");
}
});
}
网友评论