Fluwx 微信支付集成与使用
1.集成
在flutter 项目的pubspec.yaml 文件
fluwx:
git: https://github.com/OpenFlutter/fluwx.git
2.使用
fluwx.payWithWeChat(
appId: payInfo.appId,
partnerId: payInfo.partnerId,
prepayId: payInfo.prepayId,
packageValue: payInfo.packageValue,
nonceStr: payInfo.nonceStr,
timeStamp: int.parse(payInfo.timeStamp),
sign: payInfo.sign
).then((data) {
print(data);
});
fluwx.responseFromPayment.listen((WeChatPaymentResponse response) async {
print("WeChatPaymentResponse"+response.errCode.toString());
if(response.errCode == 0 ) {
// 跳转到之前需要充值页面的地址
print(pageInfo['fromPage']);
print('=============');
getIt<NavigateService>().popUntil(ModalRoute.withName(pageInfo['fromPage']));
}
// eventBus.fire(new RefreshMineInfo(true));
// Navigator.of(context).pop();
});
3.android 原生配置
在flutter项目的android项目包名的路径下,创建wxapi目录,并在其目录下WXEntryActivity与WXPayEntryActivity
package com.example.yifan.wxapi;
import android.os.Bundle;
import android.widget.Toast;
import com.jarvan.fluwx.wxapi.FluwxWXEntryActivity;
import org.jetbrains.annotations.Nullable;
public class WXEntryActivity extends FluwxWXEntryActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
package com.example.yifan.wxapi;
import com.jarvan.fluwx.wxapi.FluwxWXEntryActivity;
public class WXPayEntryActivity extends FluwxWXEntryActivity {
}
并在manifest清单配置文件里注册
<activity android:name=".wxapi.WXEntryActivity"
android:theme="@style/DisablePreviewTheme"
/>
<activity android:name=".wxapi.WXPayEntryActivity"
android:theme="@style/DisablePreviewTheme"/>
4.使用中的问题
1.微信未能调起(状态码-1)
微信开发平台的后台设置应用签名与app的release版本jks签名不一致。
检查签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk
应用签名与jks 的MD签名是一致的(只是MD签名码多了冒号:),可通过命令对比检查
keytool -v -list -keystore /Users/admin/AndroidStudioProjects/app.jks
微信支付开发文档:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5