精华内容
下载资源
问答
  • 微信公众号关联了小程序,配置了小程序的入口菜单,有什么办法能够在用户点击进入小程序的过程中获取公众号openid
  • 微信小程序获取公众号openId 公司项目,要小程序获取公众号的openId,然后来发送模板消息。我看了好几篇文章,感觉没啥用,可能是我太菜,没看懂。那我就只好按我自己的写法来了。 事先说明,我用的uniapp开发的,...

    微信小程序获取公众号openId

    公司项目,要小程序获取公众号的openId,然后来发送模板消息。我看了好几篇文章,感觉没啥用,可能是我太菜,没看懂。那我就只好按我自己的写法来了。

    事先说明,我用的uniapp开发的,当然方法都一样,顶多语法不一样。

    由于小程序不能直接向用户发送模板消息,所以需要用公众号向用户发送模板消息。
    于是需要将小程序的openid和公众号的openid绑定在一起。

    需要注意的是:需要正式版本,已经提交审核发布的版本,才能测试获取openId.

    后端先把公众号的模板信息配置好,关注公众号,会发送一个跳转小程序模板信息,然后后端把公众号的openId当成参数发送给我。
    就像下面代码中的方式。

     url: '/pages/login/login?openId='+openId,
    

    在这里插入图片描述
    点击上面的跳转小程序 ,在跳转的页面接收openId。有两种方法:

    一、在登录页面采用onload()方法接收,这个与methods同级:

    onLoad(option) {
      console.log(option.openId);
    }
    
    

    当然,这个不怎么通用,有可能不生效。

    二、在onShow()方法中操作

    这里主要用到getCurrentPages() 函数
    uniapp官网参考

    onShow(){
    	var pages = getCurrentPages();
    	var page = pages[pages.length - 1];
    	console.log(pages);
    	console.log(page);
    	console.log(page.options);
    	console.log(page.options.openId);
    }
    

    getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

    我把数据打印了一下,你们可以看下:
    在这里插入图片描述
    获取到openId,下面操作就不用我多说了,发送给后端就行了。

    下面是我获取到openId的示例图:我把他展示出来了。

    在这里插入图片描述
    至此,获取openId完成了,比较简单,反正比我看的其他文章容易多了。

    我主要参考了以下几个,虽然和我写的完全不一样,但有参考价值,如果我的方法不行,可以试试下面参考文章的方法。
    参考文章1
    https://blog.csdn.net/u013675978/article/details/109993861
    参考文章2
    https://blog.csdn.net/qq_34180996/article/details/109532390

    展开全文
  • 微信小程序获取公众号openId

    千次阅读 2020-11-05 16:28:50
    微信小程序获取公众号openId 一、为什么我们需要在小程序下面获取公众号的openId呢? 微信公众号和微信小程序我们一般都会开发,有一种场景我们经常会遇到,公众号的消息推送以较成熟,我们希望把小程序那边的用户...

    微信小程序下获取公众号openId

    一、为什么我们需要在小程序下面获取公众号的openId呢?
    微信公众号和微信小程序我们一般都会开发,有一种场景我们经常会遇到,公众号的消息推送以较成熟,我们希望把小程序那边的用户也同步到公众号这边,而且最好采用静默方式,所以我们有这种需求。

    二、方案

    从目前来讲,微信没有给我们提供可直接在小程序中调用公众号的接口,当然大家会想到union机制,当然这个还是有一定限制的,需要用户主动触发。那么我们有没有其他可选方案呢,当然我们会想到是不是可以通过向程序访问公众号h5的页面呢,这个时候我们会想到webview组件。
    在这里插入图片描述

    通过webview加载 公众号的一个h5页面,h5页面只做公众号授权处理,例如

    小程序

    constructor(props) {
        super(props)
        this.state = {
          num: 0
        }
      }
      handleLoad (e) {
        let { num } = this.state;
        this.setState({num: ++num}, ()=>{
          if(num==2){
            const url = e.detail.src;
            let code = getQueryString(url, 'code')
            Taro.redirectTo({
                url: `/pages/index/index?code=${code}`
            })
          }
        })      
      }
    
      handleError () {
        Taro.redirectTo({
            url: `/pages/index/index`
        })
      }
      
      render () {
        return (
          <WebView src='https://xxxx.xxxx.com/#/pages/get-openId/index' onLoad={ this.handleLoad } onError={ this.handleError } />
        )
      }
    

    公众号

     constructor(props) {
        super(props);
        this.state = {
        };
      }
      componentDidMount() {
        Taro.showLoading({ title: '加载中...', mask: true })
        let APP_ID = '000000000000'
        let urlParams = getAuthUrl(window.location.href, APP_ID)
        let code = ''
        if(urlParams){
          code = getQueryString('code')
        }
        if(!code){
          window.location.href = urlParams
          return
        }
        setTimeout(() => {
          Taro.hideLoading()
        }, 6000);
      }
    
      render() {
        return (
          <View className='loading-container'>
          </View>
        )
      }
    const getAuthUrl = (appId, currentPageUrl ) => {
      const authUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri="+ encodeURIComponent(currentPageUrl) +"&response_type=code&scope=snsapi_base&state=TOKEN&connect_redirect=1#wechat_redirect"
      return authUrl
    }
    

    小程序加载的页面会请求两次, 这是和公众号授权机制有关,我们只需要在页面加载的第二次从detial中拿到code就可以了。

    展开全文
  • 1、从微信后台获取code:用户请求微信后台,带上appid等参数 “https://open.weixin.qq.com/connect/oauth2/authorize?appid=” + appId + “&redirect_uri=” + redirectUri + “&response_type=code&scope=snsapi_...
  • 1.必须把小程序的域名加入到微信公众号中 2.必须为https认证
  • //通过openid获取用户的信息,这个看你需要获取用户的哪些信息,// https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839 这个是微信官方的获取unionid机制 用户信息public ...

    //通过openid获取用户的信息,这个看你需要获取用户的哪些信息,

    // https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839 这个是微信官方的获取unionid机制 用户信息

    public classGetBasicInformation {//网页授权接口

    public final static String GetPageAccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";public static MapgetAccessToken(String access_token, String openid) {

    String requestUrl= GetPageAccessTokenUrl.replace("ACCESS_TOKEN", access_token).replace("OPENID", openid);

    HttpClient client= null;

    Map result = new HashMap();try{

    client= newDefaultHttpClient();

    HttpGet httpget= newHttpGet(requestUrl);

    ResponseHandler responseHandler = newBasicResponseHandler();

    String response=client.execute(httpget, responseHandler);

    JSONObject OpenidJSONO=JSONObject.fromObject(response);//String accessToken = String.valueOf(OpenidJSONO.get("access_token"));

    String subscribe = String.valueOf(OpenidJSONO.get("subscribe"));

    String nickname= new String(String.valueOf(OpenidJSONO.get("nickname")).getBytes("ISO8859-1"),"UTF-8");

    String sex= String.valueOf(OpenidJSONO.get("sex"));

    String language= String.valueOf(OpenidJSONO.get("language"));

    String city= new String(String.valueOf(OpenidJSONO.get("city")).getBytes("ISO8859-1"),"UTF-8");

    String province= new String(String.valueOf(OpenidJSONO.get("province")).getBytes("ISO8859-1"),"UTF-8");

    String country= new String(String.valueOf(OpenidJSONO.get("country")).getBytes("ISO8859-1"),"UTF-8");

    String headimgurl= String.valueOf(OpenidJSONO.get("headimgurl"));

    String subscribeTime= String.valueOf(OpenidJSONO.get("subscribe_time"));

    String unionid= String.valueOf(OpenidJSONO.get("unionid"));//String accessToken =new String(String.valueOf(OpenidJSONO.get("access_token")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid =new String(String.valueOf(OpenidJSONO.get("openid")).getBytes("ISO8859-1"),"UTF-8");//String openid = String.valueOf(OpenidJSONO.get("openid"));//result.put("accessToken", accessToken);

    result.put("subscribe", subscribe);

    result.put("nickname", nickname);

    result.put("sex", sex);

    result.put("language", language);

    result.put("city", city);

    result.put("province", province);

    result.put("country", country);

    result.put("headimgurl", headimgurl);

    result.put("subscribeTime", subscribeTime);

    result.put("unionid", unionid);//System.out.println(accessToken+"==================="+unionid);

    } catch(Exception e) {

    e.printStackTrace();

    }finally{

    client.getConnectionManager().shutdown();

    }returnresult;

    }

    }

    展开全文
  • 微信小程序获取公众号code以及openId

    千次阅读 2020-11-18 16:59:47
    微信小程序判断用户是否关注公众号-简要流程 版权 原文链接:树先生https://blog.csdn.net/weixin_39601000/article/details/105288342 没有需求就没有开发 需求在小程序内直接可以关注公众号 且如果已经关注则隐藏...

    微信小程序判断用户是否关注公众号-简要流程
    版权 原文链接:树先生https://blog.csdn.net/weixin_39601000/article/details/105288342
    没有需求就没有开发 需求在小程序内直接可以关注公众号 且如果已经关注则隐藏关注按钮;找了许多没有特别完整的 索性就把自己的做法给整理一下 步骤大致如下

    1. 小程序关联公众号:
    1.1 路径:小程序后台——设置——关注公众号

    1.2 关联以后就可以直接在小程序内使用“”组件了 对应参考链接:https://developers.weixin.qq.com/miniprogram/dev/component/official-account.html

    2. 获取用户是否关注公众号标识
    2.1 实现:借用了小程序“web-view”组件来实现 注意需要先去小程序开发设置——业务域名 添加公众号设置的网页授权域名才可以访问;对应参考链接https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

     **2.1.1 小程序设置跳转路径 获取code:URL必须是上面设置好的域名下的路径**
    
    <web-view src="https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=URL&response_type=code&scope=snsapi_base#wechat_redirect"></web-view>
    
     2.1.2 通过code换取公众号openid和网页授权access_token (就是正常获取公众号openid流程 参考链接:[https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html))
    
    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    
     **2.1.3 获取通用接口access_token** (参考链接:https://developers.weixin.qq.com/doc/offiaccount/WeChat_Invoice/Nontax_Bill/API_list.html#1.1%20%E8%8E%B7%E5%8F%96access_token)注意:2.1.2获取到的网页授权access_token是无法用于后续请求的
    
    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    
     **2.1.4 通过通用接口access_token和公众号openid获取用户基本信息(即是否关注公众号标识)**参考链接:[https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html](https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html)
    
    https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
    
     建议将获取到的公众号openid与小程序openid对应关系 保存进表;供后续调用
    

    3. 利用web-view的JSSDK接口携参跳转回小程序
    //subscribe即为返回的是否关注公众号标识

    <script>
    wx.miniProgram.switchTab({url: '/pages/index/index?subscribe='+subscribe})
    </script>
    
    展开全文
  • 小程序公众号openID绑定

    千次阅读 2020-07-06 20:23:13
    通过小程序登录获取小程序openID <button hidden="{{is_login}}" class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="...
  • 在开发的小程序里,需要判断使用该小程序的用户是否有关注该小程序关联的公众号,如未关注要引导用户去关注公众号。 解决思路 使用小程序web-view组件进行微信公众号授权网页跳转 代码开发前的准备 1)登陆小程序...
  • 最近做的关于微信公众号小程序的项目比较多,这里先写一下如何通过微信公众号关联的小程序openid获取其微信公众号openid,以完成推送消息模板之类的操作,相反操作道理一致。 前话 每个微信用户对于不同的...
  • 1: 先设置微信公众号网页回调域名 端口为80 (微信公众号有详细介绍) ,以及回调方法...2:登陆时跳转重定向 到网页授权页面 唤醒授权 在小程序wx.login后调用了web view网页弹出 来引导用户进行授权 if (res.data.g...
  • 于是需要将小程序openid公众号openid绑定在一起。提供两种思路: 方法一: 1.微信小程序公众号都绑定到微信开放平台上,这样小程序登录获取用户信息的时候可以拿到微信用户唯一id(unionid)。 2.公众号...
  • 主要介绍了微信小程序 springboot后台如何获取用户的openid,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 无论是微信小程序还是微信公众号获取OPENID都需要先获取code 获取code String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + ticketWxConfig.getCustomAppId() + "&redirect_uri=" +...
  • 1.微信小程序公众号进行绑定后,在小程序调用wx.login()方法后会自动获取unionid,公众号根据官方文档在获取用户基本信息后会拿到相同的unionid,openid,nickname。。。等相关信息; 2.将小程序拿到的unionid进行...
  • 微信公众号获取openId(微信小程序)

    千次阅读 2017-03-28 11:04:35
    //微信小程序 微信公众号获取openId public static String getUserOpenId(String accessToken){ String result = null; String requestUrl ="https://api.weixin.qq.com/cgi-bin/user/get?access_to
  • 微信公众号小程序获取OPENID方法

    千次阅读 2018-06-19 22:22:17
    * 获取微信小程序 session_key 和 openid * * @param code 调用微信登陆返回的Code * @return */ @ResponseBody @RequestMapping("getWXOpenId") public static JSONObject ...
  • 小程序公众号在同一开放平台下,则可获取unionId作为用户的唯一标识,因为同一开放平台下的用户在小程序和在公众号下的unionid是一样的,而openid是不一样的。 ...
  • 快速获取微信公众号openid的方法2018-09-12本篇文章你将学到:在自己做微信开发时,经常要获取某个测试号的openid。(openid不是微信号,同一个微信号在不同的公众号有不同的openid)下面这篇文章就是教大家快速获取...
  • 总所周知,微信生态下不同的公众号以及不同的小程序里用户的openid也是各不相同,哪怕同一个企业同一个主体,做什么绑定都是一样,openid并不能统一起来。由于这个问题导致同一个公司下的不同公众号以及小程序的用户...
  • 获取微信公众号openID,code

    千次阅读 2019-08-20 16:39:09
    获取微信公众号openID public class AdminUtil { #region 获取OpenID /// /// 获取OpenID /// public static string GetOpenID(string redirect_url, string code) { string AppID = WXModel.AppID; string App...
  • 同一个用户在小程序公众号的下的两个openid肯定不一样 如果小程序公众号都绑定在同一个开放平台账号下的话,用户在小程序和在公众号下的unionid是一样的 如果先有公众号并且积累了大量粉丝,然后才有...
  • 公众号获取openId是在前端先调用一个腾讯的请求地址,传的是当前页面的URL,得到code,让把code给后端服务器,后端根据appId,appSecret和code,去腾讯换取openId。 // 网页授权获取code //public final static ...
  • 微信小程序怎么获取openId 1、在微信js文件中获取 appid,secret这两个参数在微信公众号管理平台——>开发——>开发设置 wx.login({ success: function (res) { console.log("res.code=====" + res.code); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,561
精华内容 1,824
关键字:

小程序获取公众号openid

友情链接: 68309533.rar