# harmony_fluwx 集成微信服务
HarmonyOS next之harmony_fluwx 集成微信服务
fluwx 链接:https://gitee.com/almost777/fluwx
接入功能
- 分享图片,文本,音乐,视频等。支持分享到会话,朋友圈以及收藏.
- 微信支付.
- 在微信登录时,获取Auth Code.
- 拉起小程序.
- 订阅消息.
- 打开微信.
- 从微信标签打开应用
初始化
注册 WxAPI
registerWxApi(appId: "wxd930ea5d5a228f5f",universalLink: "https://your.univerallink.com/link/");
基础知识
微信回调
实际上,像shareToWeChat
or payWithWeChat
这种的函数,底层上是调用了原生SDK的sendRequest
方法,所以他们的返回结果意义不大,他们的返回结果仅仅是sendRequest
的返回值。
为了获取真实的回调,你应该这样做:
fluwx.weChatResponseEventHandler.listen((res) {
if (res is fluwx.WeChatPaymentResponse) {
// do something here
}
});
笔记: 如果你的
errCode = -1
, 那请阅读微信官方文档,因为-1的原因数不胜数.
图片
有四种内置 WeChatImage
:
WeChatImage.network(String source, {String suffix});
WeChatImage.file(File source, {String suffix = ".jpeg"});
WeChatImage.asset(String source, {String suffix});
WeChatImage.binary(Uint8List source, {String suffix = ".jpeg"});
其中, suffix
优先级最高, 如果suffix
是空白的,fluwx
将会尝试从文件路径中读取后缀.
在分享图片的功能,图片不能超过10M
.如果图片被用作thumbnail
或 hdImagePath
,Fluwx
会对 WeChatImage
进行压缩,
否则不会压缩. 但是,最好还是自己压缩,因为不保证fluwx
压缩效果。
分享
简单:
shareToWeChat(WeChatShareTextModel("source text", scene: WeChatScene.SESSION));
绝大部分分享可以分享到会话,朋友圈,收藏(小程序目前只能分享到会话)。默认分享到会话。
///[WeChatScene.SESSION]会话
///[WeChatScene.TIMELINE]朋友圈
///[WeChatScene.FAVORITE]收藏
enum WeChatScene {
SESSION,
TIMELINE,
FAVORITE
}
支持的分享各类:
- WeChatShareTextModel
- WeChatShareMiniProgramModel
- WeChatShareImageModel
- WeChatShareMusicModel
- WeChatShareVideoModel
- WeChatShareWebPageModel
- WeChatShareFileModel
支付
调用支付方法很简单,但想成功并不简单:
payWithWeChat(
appId: result['appid'],
partnerId: result['partnerid'],
prepayId: result['prepayid'],
packageValue: result['package'],
nonceStr: result['noncestr'],
timeStamp: result['timestamp'],
sign: result['sign'],
);
iOS 支付
-
配置
URL Schemes
,内容为应用的AppID
, 可以登录微信开放平台查看。编辑ios/Runner/Info.plist
<key>CFBundleURLSchemes</key> <array>
wx84cxxxxxx
-
配置
LSApplicationQueriesSchemes
-
使用
await fluwx.registerWxApi( appId: "wx84cfexxxxxx", universalLink: "https://www.xxxx.cn/app/"); fluwx.payWithWeChat( appId: result['appid'], partnerId: result['partnerid'], prepayId: result['prepayid'], packageValue: result['package'], nonceStr: result['noncestr'], timeStamp: result['timestamp'], sign: result['sign'], )
安卓支付
- 登录微信开放平台,填写相关信息
- 根据
应用包名
生成应用签名
点击这里下载应用签名工具, 安装好签名工具后,输入应用包名就可以生成应用签名了
-
使用
// 注册 await fluwx.registerWxApi(
appId: "wx84cxxxxxx",
universalLink: "https://www.xxxx.cn/app/");// 监听支付结果 fluwx.weChatResponseEventHandler.listen((event) async {
print(event.errCode);
// 支付成功
if (event.errCode == 0) {
}
// 关闭弹窗
});
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库