美文网首页
获取微信公众号openid以及用户详情

获取微信公众号openid以及用户详情

作者: 十九贝勒 | 来源:发表于2018-06-06 11:54 被阅读12次

公司开始接触公众号,要开发一个平台。

首先需要的就是获取用户信息啊。

于是去微信官方网站寻找相关接口,附文档地址:
官方文档

开始的第一步,配置环境:

  • 公众号添加开发者账号;
  • 配置授权域名;
  • 配置业务域名;
  • 另外还有微信开发者工具下载。

第二步 拿 code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=PAGE&scope=snsapi_base&state=yunnying#wechat_redirect

注册填写自己的appid和自己的page

第三步 根据CODE获取OPENID

 private  static String wxUrl="https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
 
 /**
   * 获取微信openid
   * @param appid appid
   * @param secret secret
   * @param jscode jscode
   * @return
   *   err:  {"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: 0PFNQa0729th42 ]"}
   *   success:{"session_key":"R+AJs7g+f5841HSn51W0bA==","openid":"oLw0k0Ss_Ntjj-o5KT13L8PcXbsU"}
   */
  public static Map  getOpenId(String appid,String secret, String jscode){
    String requestUrl =
        wxUrl.replace("APPID", appid).replace("SECRET", secret).replace("CODE", jscode);
    String oauth = restTemplate.getForObject(requestUrl, String.class);
    System.out.println("oauth:"+oauth);
    try {
       return (Map)JSON.parseObject(oauth,Map.class);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }

第四步 获取微信token

 private static String wxTokenUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
 
  public static String getWxToken(String appid,String secret) {
    String requestUrl =
        wxTokenUrl.replace("APPID", appid).replace("SECRET", secret);
    String oauth = restTemplate.getForObject(requestUrl, String.class);
    System.out.println("oauth:"+oauth);
    try {
      return ((Map)JSON.parseObject(oauth,Map.class)).get("access_token");
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }

第五步 获取用户信息

 private static String wxUserInfoUrl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID";
 
/**
   * 获取微信openid 详细信息 公众号功能
   * @param appid appid
   * @param secret secret
   * @param openId openId
   * @return
   *   err:  {"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: 0PFNQa0729th42 ]"}
   *   success:{"session_key":"R+AJs7g+f5841HSn51W0bA==","openid":"oLw0k0Ss_Ntjj-o5KT13L8PcXbsU"}
   */
  public static Map  getOpenIdDetail(String appid,String secret, String openId){
    String accessToken=getWxToken(appid,secret);
    String requestUrl =
            wxUserInfoUrl.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openId);
    String oauth = restTemplate.getForObject(requestUrl, String.class);
    System.out.println("oauth:"+oauth);
    try {
      oauth=new String(oauth.getBytes("ISO-8859-1"),"UTF-8");
      return (Map)JSON.parseObject(oauth,Map.class);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }

注意,微信的中文有乱码需要转化(本例已经转成utf-8)。如果用户未关注公众号,是无法拿到用户的详细信息的。

kg3.png
原文地址:获取微信公众号openid以及用户详情-一张虎抓蛙

相关文章

  • 获取微信公众号openid以及用户详情

    公司开始接触公众号,要开发一个平台。 首先需要的就是获取用户信息啊。 于是去微信官方网站寻找相关接口,附文档地址:...

  • 微信公众号开发:获取openId和用户信息

    title: 微信公众号开发:获取openId和用户信息 tags: 微信公众号 categories: 笔记 ...

  • 微信公众号开发--支付完整流程

    微信公众号支付的完整流程,首先需要微信授权,获取openId,因为openid是微信用户在公众号appid下的唯一...

  • 如何获取微信openId

    获取微信openid openid定义 为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要...

  • 微信公众号支付踩坑笔记

    微信公众号支付,简单说主要分为如下几个步骤. 1.openId的获取 openId是微信用户与特定公众号对应关系的...

  • h5登录流程

    微信公众号h5获取用户openId的方法和步骤 微信h5静默、非静默授权获取用户openId的方法和步骤: 一、o...

  • 无标题文章

    转风吹过01 微信公众号获取用户的openid 第一步:理解逻辑。 获得微信的openid,需要先访问微信提供的一...

  • 获取微信openId

    微信openId是微信公众号和用户相互绑定的唯一标识 获取微信openId 第一步:填写服务器配置 url必须以h...

  • 微信公众号网页授权域名设置

    微信公众号获取用户信息 公众号 h5 页面开发过程中,一般都有获取用户基本信息的需求,比如用户头像、openId ...

  • H5在微信中获取openid

    为什么要获取openid openId是用户在当前公众号下的唯一标识(‘身份证’)。在微信中进行微信分享、支付等操...

网友评论

      本文标题:获取微信公众号openid以及用户详情

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