精华内容
下载资源
问答
  • 微信电脑版多用户登录

    千次阅读 2018-12-30 13:43:27
    1. 找到微信的快捷方式 找到微信的图标,右键–>打开文件所在位置–>复制路径 如果没有快捷方式就点击WeChat.exe—>发送到—>桌面快捷方式(这样桌面就有快捷方式了) 将你的微信...

    1. 找到微信的快捷方式

    找到微信的图标,右键–>打开文件所在位置–>复制路径
    如果没有快捷方式就点击WeChat.exe—>发送到—>桌面快捷方式(这样桌面就有快捷方式了)

    在这里插入图片描述

    1. 将你的微信的的安装路径复制一下(这是我的 例如:E:\Application\Tencent\wechat\wechatFile\WeChat)
      在桌面新建一个txt文件
    复制的路径: E:\Application\Tencent\wechat\wechatFile\WeChat
    将你微信的路径更改至一下即可
    
    start/d "E:\Application\Tencent\wechat\wechatFile" WeChat
    start/d "E:\Application\Tencent\wechat\wechatFile" WeChat
    这是一次打开两个微信登录窗口(你需要几个就写几个,,打开过多cpu就飞转,,很刺激的)
    

    修改完成之后将文件保存,文件后缀名修改成.bat文件结尾的
    双击看看

    展开全文
  • 最近,对微信公众号有点兴趣,就自己研究了研究里面的一些内容,发现还挺... 我想,做微信公众号开发的,对于想获取关注了公众号的用户信息,或者说是当前与后台服务器进行交互的当前用户信息,这个功能是很重要...

        最近,对微信公众号有点兴趣,就自己研究了研究里面的一些内容,发现还挺有意思的,而且通过微信公众号可以调用一些比较有意思的接口,就比如百度开发服务平台 点击进入 里面的很有接口,就比较常见的翻译,语音识别,地理位置等等,都挺好的。好了,不多说,进入正题好了。

        我想,做微信公众号开发的,对于想获取关注了公众号的用户信息,或者说是当前与后台服务器进行交互的当前用户信息,这个功能是很重要的吧。因为,通过这个,可以直接获取到当前的用户信息,而不需要,每次都是进行自己输入信息,这个只会让用户感觉到很不适。。。所以,为了解决这个需求,那咱们来研究研究,如何获取微信的个人信息~!

    大家可以关注我的微信公众号:Java菜鸟进阶之路。便于日常阅读哦!   

    目录

     (一)思路

    展开全文
  • 微信小程序与微信公众号同一用户登录问题 最近在做微信小程序与微信公众号登录合并的接口。整理相关资料以及个人认识的心得写了这篇文章与大家一起分享。 首先,简单说下我遇到的问题是我们的程序调用微信...
    
    
    微信小程序与微信公众号同一用户登录问题


    最近在做微信小程序与微信公众号登录合并的接口。整理相关资料以及个人认识的心得写了这篇文章与大家一起分享。


    首先,简单说下我遇到的问题是我们的程序调用微信小程序得到openid,然后通过openID得到用户的唯一标识,用户得以登录,然而,当我们调用微信公众号也同样的到openid,同一以用户两个不同的openid,不能区分是否为同一用户,然后发现无论调用微信小程序还是微信公众号同一个用户的到unionid是相同的,所以我们就用unionid来区分是否为同一用户。


    UnionID机制说明:

    如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。


    1、对于小程序获取unionid:


    我们来看下用户登录小程序时的时序图:



    1、 (JAVA 后台)向微信服务器发起请求附带js_code、appId、secretkey和grant_type参数,以换取用户的openid和session_key(会话密钥)


    用code (前端调用微信接口得到)换取 session_key,openid


    ​这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。
    其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。后台解密用到。


    接口地址:


    https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

    请求参数说明:


    1 参数          是否必须    说明
    2 appid          是    应用唯一标识,在微信开放平台提交应用审核通过后获得
    3 secret         是    应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
    4 js_code      是    填写第一步获取的code参数
    5 grant_type    是    填authorization_code

    Map<String, String> params = new HashMap<String, String>();
    params.put("appid", APPID);
    params.put("secret", SECRET);
    params.put("js_code", "js_Code");
    params.put("grant_type", "authorization_code");
    String openidtoken = HttpClientUtil.invokeGet(https://api.weixin.qq.com/sns/jscode2session, proxy, params,
    utf-8, 60000);


    返回参数:

    参数 说明
    openid 用户唯一标识
    session_key 会话密钥


    2、AES解密核心代码:(包含用户敏感信息的encryptedData信息由前端提供,后台负责解密数据,得到unionId)

    		public byte[] decrypt(byte[] content, byte[] keyByte, byte[] ivByte) throws InvalidAlgorithmParameterException {
    			initialize();
    			try {
    				Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
    				Key sKeySpec = new SecretKeySpec(keyByte, "AES");
    
    				cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(ivByte));// 初始化 
    				byte[] result = cipher.doFinal(content);
    				return result;
    			} catch (NoSuchAlgorithmException e) {
    				e.printStackTrace();  
    			} catch (NoSuchPaddingException e) {
    				e.printStackTrace();  
    			} catch (InvalidKeyException e) {
    				e.printStackTrace();
    			} catch (IllegalBlockSizeException e) {
    				e.printStackTrace();
    			} catch (BadPaddingException e) {
    				e.printStackTrace();
    			} catch (NoSuchProviderException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}

    3、解密用户信息:

    		byte[] resultByte = Aes.decrypt(
    								Base64.decodeBase64(encryptedData),
    								Base64.decodeBase64(session_key),
    								Base64.decodeBase64(ivByte));
    
    		if (null != resultByte && resultByte.length > 0) {
    			String userInfo = new String(resultByte, "UTF-8");
    			// 结果转json
    			JsonObject jsonobject = null;
    			try {
    				JsonParser par = new JsonParser();
    				JsonElement jsonelement = par.parse(userInfo);
    				jsonobject = jsonelement.getAsJsonObject();
    			} catch (Exception e) {
    				。。。。。。
    			}
    			// 获取unionid
    			unionID = jsonobject.get("unionId").getAsString() + "";
    		}


    注:String和字节数组之间的转换:


    通过 Base64.decodeBase64(String)就可以得到字节数组。


    通过 String userInfo = new String(resultByte, "UTF-8"); 就得到了想要的String


    4、解密得到的结果:
    加密过程微信服务器完成,解密过程在我们的服务器完成,即由 encryptData 得到如下数据:
    {
    "openId": "OPENID",
    "nickName": "NICKNAME",
    "gender": GENDER,
    "city": "CITY",
    "province": "PROVINCE",
    "country": "COUNTRY",
    "avatarUrl": "AVATARURL",
    "unionId": "UNIONID",
    "watermark":
    {
    "appid":"APPID",
    "timestamp":TIMESTAMP
    }
    }
    5、把得到的unionId与用户的唯一标识绑定在一起,通过标识就可以进行下一步操作,系统不同,操作不同,这里不再详谈。




    2、对于公众号获取unionId:


    1、先拿code获取网页授权access_token以及openid


    接口地址:


    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=JSCODE&grant_type=authorization_code

    请求参数说明:


    1 参数          是否必须    说明
    2 appid          是    应用唯一标识,在微信开放平台提交应用审核通过后获得
    3 secret         是    应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
    4 code           是    填写第一步获取的code参数
    5 grant_type     是    填authorization_code

    Map<String, String> params = new HashMap<String, String>();
    params.put("appid", APPID);
    params.put("secret", SECRET);
    params.put("code", "Code");
    params.put("grant_type", "authorization_code");
    String openidtoken = HttpClientUtil.invokeGet(https://api.weixin.qq.com/sns/oauth2/access_token, proxy, params,
    utf-8, 60000);


    返回参数:

    "access_token":"ACCESS_TOKEN", 
    "expires_in":7200, 
    "refresh_token":"REFRESH_TOKEN",
    "openid":"OPENID", 
    "scope":"SCOPE" 
    }
    参数             说明
    access_token    接口调用凭证
    expires_in      access_token接口调用凭证超时时间,单位(秒)
    refresh_token   用户刷新access_token
    openid          授权用户唯一标识
    scope           用户授权的作用域,使用逗号(,)分隔.


    2、可以看到除access_token外,还可以获得openid,用拿到的access_token和openid获取unionID


    接口地址:


    https://api.weixin.qq.com/sns/userinfo?appid=APPID&secret=SECRET&code=JSCODE&grant_type=authorization_code

    请求参数说明:


    1 参数          是否必须    说明
    2 access_token 接口调用凭证
    3 openid         是    授权用户唯一标识
    4 lang           否    一般为固定值zh_CN

    Map<String, String> params = new HashMap<String, String>();
    params.put("access_token", access_token);
    params.put("openid", openId);
    params.put("lang", "zh_CN");
    String openidtoken = HttpClientUtil.invokeGet(https://api.weixin.qq.com/sns/userinfo, proxy, params,
    utf-8, 60000);


    在返回值里就包含有用户的unionID。这里不再详述。



    每天努力一点,每天都在进步。


    展开全文
  • 仿乐享微信源码 pigcms多用户微信营销系统完整开源版Pigcms多用户微信营销系统
  • 微信公众号授权登录

    千人学习 2019-03-11 09:52:06
    课程目标 学会用微信授权登录,绑定自己的业务系统 适用人群 同学们需要熟悉Java开发,了解OAuth2.0 课程简介 让同学们快速撑握OAuth2.0,实现微信授权登录,开发工具采用SpringBoot2.x,通过HttpClient调用微信授权...
  • 2,微信浏览器中的静默登录功能需求,这两种需求就需要用到用户的unionID,这样才能在登录点(终端)识别用户。那么这两种需求下用户的unionID该如何获取呢? 1,先看pc端的解决方案 以snsapi_login为scope...

    假设网站A有以下功能需求:1,pc端微信扫码登录;2,微信浏览器中的静默登录功能需求,这两种需求就需要用到用户的unionID,这样才能在多个登录点(终端)识别用户。那么这两种需求下用户的unionID该如何获取呢?

    1,先看pc端的解决方案

    以snsapi_login为scope发起网页授权,先拿网站应用的appid和secret用授权接口获取“网页授权access_token”,再利用“网页授权access_token”通过“拉取用户信息的api接口”拉取用户信息从而获得unionId。

    此方法适合场景:在不使用微信公众号(订阅号、服务号)的情况下,通过微信开放平台下的网站应用来实现pc端网站的微信扫码登录功能。这个场景需求相对来说比较简单,可参考按照微信开放平台的技术文档“网站应用”--“微信登录功能”一节来实现编码,下面只把用户扫描二维码授权微信登录(用户扫描二维码并在微信客户端弹出的授权窗口点击确认登录后)后如何获取unionID的方法和过程描述下。

    用户授权登录后重定向到网站A的登录页,并带回code和state参数。先拿code获取网页授权access_token:

    1         $curl = new Curl();
    2         $wxresponse = $curl->get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid
    3             . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code');
    4         $wxresult = json_decode($wxresponse);

    请求参数说明:

    1 参数          是否必须    说明
    2 appid          是    应用唯一标识,在微信开放平台提交应用审核通过后获得
    3 secret         是    应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
    4 code           是    填写第一步获取的code参数
    5 grant_type     是    填authorization_code

    如果请求正确,返回值:

    复制代码
    { 
    "access_token":"ACCESS_TOKEN", 
    "expires_in":7200, 
    "refresh_token":"REFRESH_TOKEN",
    "openid":"OPENID", 
    "scope":"SCOPE" 
    }
    参数             说明
    access_token    接口调用凭证
    expires_in      access_token接口调用凭证超时时间,单位(秒)
    refresh_token   用户刷新access_token
    openid          授权用户唯一标识
    scope           用户授权的作用域,使用逗号(,)分隔
    复制代码

    可以看到除access_token外,还可以获得openid。

    然后用拿到的access_token和openid获取unionID:

    1     //获取用户个人信息
    2     $response = $curl->get('https://api.weixin.qq.com/sns/userinfo?access_token=' . $wxresult->access_token
    3         . '&openid=' . $wxresult->openid);

    返回值就不详细写了,其中就有用户的unionID。

     

    2,再看手机端微信浏览器的解决方案

    方法一:以snsapi_userinfo为scope发起网页授权,获取unionID过程与pc端的相同,但要用到微信公众号中的服务号appid和secret获取网页授权access_token。

    1              // 用户是从微信访问此页面,直接调用微信验证
    2              header('Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid
    3                 . '&redirect_uri=http%3A%2F%2Fwww.host.com%2Fsite%2Fcallback'
    4                 . '&response_type=code&scope=snsapi_userinfo&state=state#wechat_redirect');
    5              exit;

    这种方法在微信浏览器中的体验并不好,因为当用户在微信浏览器中浏览网页时点击了某个网页触发登录功能时会弹出授权窗口,而比较好的体验应该是,用户触发登录功能时应该是无感知的,下面的方法二就可以实现这种需求。

     

    方法二:以snsapi_base为scope发起网页授权,先用公众号的appid和secret获取微信公众号的全局唯一凭证access_token,然后用拿到的access_token调用公众号的“用户管理接口”中的“获取用户信息接口”获得unionID。

    发起授权请求,因为以snsapi_base为scope发起网页授权请求,所以授权是静默的,用户是无感知的微信公众平台开发文档网页授权一节中有说明。

    1             header('Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $appid
    2                 . '&redirect_uri=http%3A%2F%2Fwww.host.com%2Fsite%2Fcallback'
    3                 . '&response_type=code&scope=snsapi_base&state=state#wechat_redirect');
    4             exit;

    获取公众号全局唯一access_token

                $curl = new Curl();
                $curl->setOption(CURLOPT_SSL_VERIFYPEER, false);
                $tokenresult = $curl->get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $secret);

    如果请求正确的话,返回值:

    1 {"access_token":"ACCESS_TOKEN","expires_in":7200}
    2 
    3 参数                    说明
    4 access_token           获取到的凭证
    5 expires_in            凭证有效时间,单位:秒

    调用公众号“获取用户信息接口”:

    1                 $response = $curl->get('https://api.weixin.qq.com/cgi-bin/user/info?access_token=' . $token . '&openid=' . $wxresult->openid . '&lang=zh_CN');

    如果正确的话,返回值示例:

    复制代码
     1 {
     2    "subscribe": 1,
     3    "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
     4    "nickname": "Band",
     5    "sex": 1,
     6    "language": "zh_CN",
     7    "city": "广州",
     8    "province": "广东",
     9    "country": "中国",
    10 
    11    "headimgurl":  "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4
    12 
    13 eMsv84eavHiaiceqxibJxCfHe/0",
    14   "subscribe_time": 1382694957,
    15   "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
    16   "remark": "",
    17 
    18   "groupid": 0,
    19 
    20   "tagid_list":[128,2]
    21 }
    22 
    23 参数说明
    24 参数    说明
    25 subscribe    用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
    26 openid    用户的标识,对当前公众号唯一
    27 nickname    用户的昵称
    28 sex    用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
    29 city    用户所在城市
    30 country    用户所在国家
    31 province    用户所在省份
    32 language    用户的语言,简体中文为zh_CN
    33 headimgurl    用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
    34 subscribe_time    用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
    35 unionid    只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。
    36 remark    公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
    37 groupid    用户所在的分组ID(兼容旧的用户分组接口)
    38 tagid_list    用户被打上的标签ID列表
    复制代码

     

     3,总结

    用户无论从pc端登录网站还是从微信浏览器中访问网站,我们都能获取unionID,从而实现了多点登录的用户识别。


    展开全文
  • 微信开放平台登录微信公众平台授权登录区别在哪? 2017-09-13 12:05:41 +08:00  xoxo419 微信第三方登录有两种登录方式, 1. 微信开放平台登录 2. 微信公众平台授权登录? 问: 两者区别在哪? 壹号店 ...
  • 小猪微信CMS多用户营销平台源码

    热门讨论 2013-12-27 10:11:34
    1、微信平台安装方法:phpmyadmin中导入weixin.sql 2、修改数据库文件:data/conf/db.php 3、后台管理地址:/index.php?g=Admin&m=Admin&a=index,用户名密码:admin admin 解压密码:用户营销平台源码@www.mx800
  • 微信公众号 授权登录 JAVA

    万次阅读 2017-02-20 11:55:10
    微信Java授权登录
  • java实现微信公众号授权登录获取用户信息流程

    万次阅读 热门讨论 2018-01-19 22:05:20
    前提:需要申请认证的微信公众号;获取对应的APPID和APPSECRET;并且还需要获取到用户信息权限(点击“修改“添加服务器的域名地址),前期工作安装测试账号为例给大家展示下: 1)、公众测试账号获取  访问...
  • 现在的网站基本都接入微信登陆了,就好像下面这样的。...首先咱们得先在微信开放平台注册账号并且创建一个网站应用,等待审核通过后就可以获得Appid和AppSecretbingqie并且还要设置回调域名,这个不说。 首...
  • asp 微信登录

    2018-05-28 12:20:51
    ASP 微信登录 OAuth2.0接口 获取 OpenId Access_Token 头像 昵称 性别等信息,更多微信API:http://t.jianyong.wang/wxapi
  • 最近公司项目网站需要支持第三方登录,需要对接微信,场景是用户通过微信app扫二维码实现自动登录功能。 效果如下图所示: 一、前期准备 经过查阅文档,发现微信该功能属于微信发放平台...
  • 微信登录

    千次阅读 2014-11-11 18:16:41
    微信登录微信支付功能内测的时候,就开始第一次研究微信登陆,不过当时可怜的微信的a's
  • 今天开发公众号遇到一个问题,在微信授权登录的时候一直重复回调,在网上找到几个解决方案, 方法一: 使用缓冲把第一次获取的code存入缓冲,然后再请请求的时候判断是否存在这个值 方法二: 在请求链接中加上一...
  • 微信网页授权登录

    千次阅读 2017-08-08 10:13:59
    微信官方开发文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1421140842 //第一步:用户同意授权,获取code string code = "", state = ""; string userAgent =...
  • 微信扫描登录

    千次阅读 2018-03-19 16:06:33
    第一步:准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统在进行微信OAuth2.0授权...(1)用户授权流程:微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入...
  • 仿乐享微信源码 pigcms多用户微信营销系统商业破解版
  • 微信扫描二维码登录网站技术原理

    千次阅读 2014-12-06 17:55:14
    微信扫描二维码登录网站 网站应用微信登录开发指南   微信扫描二维码登录网站是微信开放平台下网站应用的一种接口实现的功能。微信开放平台的网址是 https://open.weixin.qq.com 准备工作 网站应用微信登录是...
  • 微信小程序开发时,当我们调用API wx.getUserInfo(OBJECT) 时,需要用户授权。但如果用户拒绝授权,我们如何兼容用户拒绝授权状态,拥有更好的用户体验呢? 先看看这个接口的官方文档: wx.getUserInfo(OBJECT...
  • delphi开发微信登录电脑版,可以扫码登录微信,并进行消息发送,好友管理等一系列功能;源码齐全;
  • 微信扫码登录

    万次阅读 2017-10-11 13:13:22
     OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。  允许用户提供一个令牌,而不是...
  • 微信小程序实现微信登录(Java后台)

    万次阅读 多人点赞 2018-12-13 19:51:38
    这两天在自己的小项目中加入了微信小程序的很功能,今天来说一下关于微信授权登录的部分。 需要的材料 1:一个可以测试的微信小程序 2:此微信小程序的APPID和APPscret 流程 微信用户对应一个小程序都有一个...
  • 微信扫码登录功能实现

    千次阅读 2019-09-17 07:19:53
    原因:很简单,公司的账号登录需要用到微信扫码登录与QQ的登录功能,所以,在做好了微信的扫码登录之后,本人就写这篇微信扫码登录功能实现的教程 教程开始 需要用到的网站: https://open.weixin.qq.com/ ...
  • 应用场景: ...通过公众微信平台的菜单打开WAP版,同理第一次登录需要微信用户授权登录,然后需要绑定已有账号或选择新注册账号,绑定或新注册后自动登录,下次同一用户从以上两个入口登录网站,直接就

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 319,813
精华内容 127,925
关键字:

微信多用户登录