# 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.如果图片被用作thumbnailhdImagePathFluwx 会对 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

    image-20210523140138835

  • 使用

    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'],
    )
    

安卓支付

image-20210523132928727

image-20210523133551034

  • 使用

    // 注册
    await fluwx.registerWxApi(
    

    appId: "wx84cxxxxxx",
    universalLink: "https://www.xxxx.cn/app/");

    // 监听支付结果
    fluwx.weChatResponseEventHandler.listen((event) async {
    

    print(event.errCode);
    // 支付成功
    if (event.errCode == 0) {
    }
    // 关闭弹窗
    });

posted @   flfljh2024  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示