美文网首页flutter
Flutter-微信授权获取用户信息

Flutter-微信授权获取用户信息

作者: 节庆007 | 来源:发表于2019-12-15 21:02 被阅读0次

微信授权获取用户信息依赖两个库
fluwx: ^1.1.3
dio: ^3.0.7 # 网络

废话不多,直接上代码

import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:fluwx/fluwx.dart' as fluwx;
import 'package:yxk_app/constant/constant.dart';
import 'package:yxk_app/event/wx_auth_login_event.dart';
import 'package:yxk_app/utils/data_utils.dart';
import 'package:yxk_app/utils/eventbus_util.dart';
import 'package:yxk_app/utils/toast_utils.dart';

/// 微信授权
class WxAuth {
  /// 微信获取用户信息授权
  static authLogin() {
    fluwx.isWeChatInstalled().then((installed) {
      if (installed) {
        fluwx
            .sendWeChatAuth(
                scope: "snsapi_userinfo", state: "wechat_sdk_demo_test")
            .then((data) {})
            .catchError((e) {});
      } else {
        ToastUtils.showToast("请先安装微信");
      }
    });
  }

  /// 获取用户信息
  static getAccessToken(String code) {
    Dio dio = new Dio();
    dio.get("https://api.weixin.qq.com/sns/oauth2/access_token",
        queryParameters: {
          "appid": Constant.APP_ID,
          "secret": Constant.APP_SECRET,
          "code": code,
          "grant_type": "authorization_code"
        }).then((response) {
      Map<String, dynamic> map = json.decode(response.data);

      String token = map["access_token"];
      String openid = map["openid"];

      if (!StringUtils.isEmpty(token) && !StringUtils.isEmpty(openid)) {
        getUserInfo(token, openid);
      }
    });
  }

  /// 获取用户详细信息
  static getUserInfo(String token, String openid) {
    Dio dio = new Dio();
    dio.get("https://api.weixin.qq.com/sns/userinfo", queryParameters: {
      "access_token": token,
      "openid": openid
    }).then((response) {
      Map<String, dynamic> map = json.decode(response.data);

      String nickname = map["nickname"];
      String openid = map["openid"];

      if (!StringUtils.isEmpty(nickname) && !StringUtils.isEmpty(openid)) {
        EventBusUtil.getInstance()
            .fire(WxAuthLoginEvent().setNickName(nickname).setOpenId(openid));
      }
    });
  }
}

流程很简单
1.main.dart中注册微信相关项
2.该工具类流程,微信获取用户信息授权-获取用户信息-获取用户详细信息
3.通知在相关界面接收详细的微信个人信息。

相关文章

  • 微信公众号 订阅号 redirect_uri域名与后台配置不一致

    订阅号不能授权获取用户信息!!! 订阅号不能授权获取用户信息!!! 订阅号不能授权获取用户信息!!! 微信公众号就...

  • Flutter-微信授权获取用户信息

    微信授权获取用户信息依赖两个库fluwx: ^1.1.3dio: ^3.0.7 # 网络 废话不多,直接上代码 流...

  • 微信内置浏览器web开发(登陆 + 支付)

    微信开发技术文档 网页授权——登陆 获取用户信息,需要获取来自微信的授权access_token。获取access...

  • 获取是否关注公众号

    获取微信用户的信息(普通版) 获取微信用户的信息(包含是否关注公众号信息) 参考链接:微信网页授权登录获取包含是否...

  • django: 微信网页授权

    微信网页授权基础知识 网页授权的最终目的就是获取微信的用户信息,微信的网页授权方式有两种 snsapi_base:...

  • 微信公众号开发(二)

    微信公众号开发文档 微信网页授权 微信客户端中访问第三方网页,可通过 微信网页授权机制 来获取用户信息。授权机制:...

  • 微信-OAuth2.0鉴权

    OAuth2.0鉴权 公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 网页授权获取用户基本...

  • 浅析微信支付:微信公众号网页授权

    本文是【浅析微信支付】系列文章的第四篇,主要讲解微信支付前如何获取获取网页授权及用户信息获取。 浅析微信支付系列已...

  • 微信授权总结

    微信网页授权 开发步骤: (1)//$code有值说明用户同意授权,获取用户信息后进入列表页,$code没有值说明...

  • uniapp小程序授权登录

    基本和微信小程序操作类似,先让小程序授权,授权成功获取code,然后通过code调用后台接口,去获取用户信息,即可...

网友评论

    本文标题:Flutter-微信授权获取用户信息

    本文链接:https://www.haomeiwen.com/subject/riylnctx.html