拿着unionId怎么校验是否是真的微信运动计步是必须拿着手机走吗unionId

微信二维码UnionID机制意味着什么?_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
UnionID机制意味着什么?
你可能喜欢微信小程序_登录获取unionid - 简书
微信小程序_登录获取unionid
首先公司开发了小程序, 公众号网页和app等, 之前都是用的openid来区分用户, 但openid只能标识用户在当前小程序或公众号里唯一, 我们希望用户可以在公司各个产品(比如公众号, 小程序, app里的微信登录)之间, 可以保持用户的唯一性, 还好微信给出了unionid. 下面分两步介绍一下 微信小程序 获取unionid的过程. 1. 首先 在微信公众平台注册小程序 , 然后在小程序上模拟登录流程.
简单登录流程
注 : 这里只是简单登录流程, 实际中需要维护登录态, wx.checkSession() 可以检查此时的登录态是否过期. 若过期, 要再次调用 wx.login() , 否则调用 wx.getUserInfo() 会拿不到用户数据.注 : 此时后台服务器接收到你发的 code, 再用appid和appSecret等请求微信可以拿到openid和session_key encrypted_data, iv 等数据, 通过appId, appSecret解密可以获得openid和其他信息. (此时解出来并没有unionid, 接下来看第二步)2. 接下来到 微信开发平台去 绑定开发账号. 一开始我也是对开放平台, 公众平台什么的有点懵, 后来看到开发平台的管理中心才明白,
这些移动应用, 网站应用 或者公众号/小程序 能绑定同一个微信开发平台账号下, 则同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
开发平台设置
大抵就是上图这样设置吧 , 立刻生效(有时也会过几分钟吧?) ,然后后台就能解密出unionid了.注 : 如果之前没有这么多小程序,公众号开发的话, 可能一直用的openid作为用户的唯一标识(就像我这样?), 不过也不用麻烦替换之前的openid, 可以用unionid直接建立自己的用户系统, 其实就是一个unionid下多个openid或手机号(当然要提前绑定了), 这样用户每次登录, 后台多一次查询就ok了当然了, 微信开发平台你要先认证才行....
认证了就是这样的
背景小程序一个比较重要的能力就是获取用户信息,也就是使用 wx.getUserInfo接口。我们发现几乎所有的小程序都会调用这个接口。虽然我们在设计文档上有提出最好的设计是在真正要用户信息的情况下才去获取用户信息,不过很多开发者并没有按照我们的期望去做,导致用户在使用的时候...
给提问的开发者的建议:提问之前先查询 文档、通过社区右上角搜索搜索已经存在的问题。
写一个简明扼要的标题,并且正文描述清楚你的问题。
提交 BUG:需要带上基础库版本号,设备信息(iOS, Android,开发工具等等),操作系统信息(系统版本),以及可以让他人重现...
注意:代码自己动手写,不要复制! GitHub 一、接入微信第三方登录准备工作。 移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用...
小雨 今天,我们一行来到了日照的九仙山。这里是国家4A级的风景区,我们在此领略了大自然的鬼斧神工。
——“贵国两类红人,一类泪汪汪凝视国旗或老百姓的真诚的蠢货;一类翻着白眼讽刺一切的鸡贼的精逼。前者大众喜欢,后者知识分子喜欢 ” ——“清跟浊是有一个度的,很难平衡,至清则无鱼,太污了就成淤泥了,凡事都要有个度,跟着走两个极端的老大混最终都会倒霉” ——“度你妈逼度。...
那段关于波士顿凯尔特人的讨论是我看电影的主要原因。 看完我先找了诺顿大叔的资料,电影的主演,全名爱德华诺顿Edward Harrison Norton,大叔毕业于耶鲁大学历史系,911事件后,在耶鲁建立了中东和平基金,大叔反对吸烟,在纽约总是乘地铁,“在朋友眼中,大叔善良、...微信多公众号用户打通,老用户数据没保存unionid,用户怎么打通处理呢
<a data-traceid="question_detail_above_text_l&&
之前有个公众号的商城&&只保存了用户的openid&&现在打通另外公众号、小程序用户&&&用开放平台关联获取了nuionid&&
问题就是&&公众号的商城之前没保存过nuionid,这些老用户的数据怎么处理呢&
这样数据怎么来对应过去呢&
微信好像有服务给你发openid对应unionid的列表,邮件给他们吧
--- 共有 1 条评论 ---
是吗?我先试下
这是一个历史问题,你要另一张表去做关联。
可以直接拿老用户的openid去拿unionid
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp
--- 共有 2 条评论 ---
如果你知道,麻烦告知兄弟一下
你说到点上了,可以这样去拿,但现在有一点确定不了,取关的用户,能拿到openid,这个刚测试{"subscribe":0,"openid":"o-ubHvq_oxuww0g_Npjv2k-XsTbI","tagid_list":[]} 但是能拿到unionid吗
我刚想测试一下,但是开放平台还没认证,现在没法确认
细看几遍文档
--- 共有 1 条评论 ---
已经看到,谢谢各位
腾讯已经停止返回unionid了啊,没办法了吧
--- 共有 1 条评论 ---
我以前就搞过, 停服 批处理弄的, 胆小 生怕数据弄丢了
先去开放平台绑定老公号,再获得老用户列表,接口可以一次性或者1万个openid,然后通过openid去到去获得用户基本信息,这样就可以做到老公号里面所有的用户unionid了。
开放平台关联好了,直接用openid获取用户信息,还关注的用户就能拿到unionid。
--- 共有 8 条评论 ---
: 我最近处理的时候没有拉到,你的开放平台下来的时候,可以看下。不清楚还有没有别的途径处理了。
回复 :你测试过?
:取消关注的不能的啊。
回复 : 取消关注的用户,你能获取到unionid吗 我开放平台没认证,现在没法测试。因为取消关注的用户是会从其他关联公众号进来的
: 我现在也在整合多公众号和多小程序问题,处理的方式依次拉关注用户,根据openid更新unionid,下一个公众号先判断unionid是否存在,不存在则更新unionid。这样保证多个公众号关注的用户表中都有unionid。那些没关注的之后关注时处理
调微信用户信息接口把所有的unionid重新补上去不就行了
--- 共有 2 条评论 ---
: 取消关注的用户不能,已关注用户可以
开发平台还没认证,我测试不了,取消关注的用户还能获取到unionid吗
我现在需要准确的回答而已
我好答复老板小程序能够获取到unionid的前提
1.小程序必须绑定在微信开放平台上,不绑定是没有的(PS:绑定开放平台需要开发者资质认证,认证收费的奥)
2.需要微信用户授权小程序
具体的代码实现(我在index.js的onLoad中实现的)
encryptedData的解密:模仿 官网给的例子中的 Node 的demo,使用 实现纯 js 下解密用户信(网上大部分都是用的java服务器解密的,但是我在调的时候,到了解密的那一句时,一直报错。我们现在用的是直接在微信代码里解密)
借鉴的 https://www.cnblogs.com/cai-rd/p/6816849.html
1.加入解密需要的文件,将 CryptoJS 的包放入 小程序的 utils 中()(RdWXBizDataCrypt.js不在其中需要自己写,下面有附的代码,直接复制即可)
RdWXBizDataCrypt.js
* Created by rd on .
// 引入CryptoJSvar
Crypto = require('/cryptojs.js').C
var app = getApp();
function RdWXBizDataCrypt(appId, sessionKey) {
this.appId = appId
this.sessionKey = sessionKey
RdWXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {
// base64 decode :使用 CryptoJS 中 Crypto.util.base64ToBytes()进行 base64解码
var encryptedData = Crypto.util.base64ToBytes(encryptedData)
var key = Crypto.util.base64ToBytes(this.sessionKey);
var iv = Crypto.util.base64ToBytes(iv);
// 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充
var mode = new Crypto.mode.CBC(Crypto.pad.pkcs7);
var bytes = Crypto.AES.decrypt(encryptedData, key, {
asBpytes: true,
mode: mode
var decryptResult = JSON.parse(bytes);
} catch (err) {
console.log(err)
if (decryptResult.watermark.appid !== this.appId) {
console.log(err)
return decryptResult
module.exports = RdWXBizDataCrypt
2.我在index.js中调用解密的
index.js:
//index.js
//这是关键 引入RdWXBizDataCrypt.js 这个JS文件是用来解密用的,下面会说到
//这个地方一定要注意了,路径一定要写正确,不要用系统提示的会报错,../../才是根路径
var WXBizDataCrypt = require('../../utils/cryptojs/RdWXBizDataCrypt.js');
//获取应用实例
var app = getApp()
var appId = "你的小程序id";
var secret = '你的小程序secret ';
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
openId:'',//用户唯一标识
unionId:'',
encryptedData:''
//事件处理函数
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
onLoad: function () {
var that =
wx.login({
success: res =& {
//发起网络请求
wx.request({
//这是我自己的java服务器的接口,将login()获得的code发送的服务器换取session_key
url: 'https://abc.anzhonghui.xyz/WxtestServlet/UserController?method=getUnionId',
js_code: res.code,
'content-type': 'application/x-www-form-urlencoded'
method: 'GET',
success: function (res) {
console.log(res.data.session_key)
//拿到session_key实例化WXBizDataCrypt()这个函数在下面解密用
var pc = new WXBizDataCrypt(appId, res.data.session_key)
wx.getUserInfo({
success: function (res) {
//拿到getUserInfo()取得的res.encryptedData, res.iv,调用decryptData()解密
var data = pc.decryptData(res.encryptedData, res.iv)
// data.unionId就是咱们要的东西了
app.globalData.unionid = data.unionId
console.log('解密后 unionid: ', app.globalData.unionid)
fail: function (res) {
console.log(res)
fail: function (res) { },
complete: function (res) { }
3.当写到这里时在index中的解密方法(decryptData())能用了,现在可以运行一下了
在这再补充一下关于java服务器的事:
其实java做的事很简单,微信小程序有些接口不能用,比如https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code,这个接口现在就不能再小程序用了,但是他又是必须的,微信官方就让咱们用自己的服务器去用这个接口。
具体步骤 :
1.小程序请求自己的java服务器接口
2.java服务器收到请求,开始请求
3.java服务器将请求到的数据返回给微信小程序
对就这么简单,java就做了一个中间过度的作用,这样就起到了安全作用,具体为什么安全我也不知道,官方说安全我也这样说了
获取unionid时走的坑
先看一下官方的说法
官方说的很好,在满足unionid的条件下接口https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 返回unionid,可是自始至终我也没搞明白这个条件是啥,我一直以为微信开放品台没有给我分配unionid,但是当我用解密后才发现原来我有unionid只是这个接口没返回。 所以,通过这个接口获得unionid的小伙伴千万别再这个上面死磕了,赶紧试试解密吧。我死磕两天,都绝望了。
有知道什么时候https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&
grant_type=authorization_code
这个接口才返回unionid的小伙伴,麻烦评论一下谢谢。
微信小程序UnionID机制及其获取流程
微信小程序UnionID机制及其获取流程
1.UnionID机制说明
如果公司拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信...
【微信小程序】 小程序获取unionID 微信API做的坑真多啊
首先感谢大牛给出的实践,本篇文章是转过来的,我看到的和我理解的确实是一样的。完全copy过来的:接触过的人应该都知道,同一个微信开放平台下的相同主体的App、公众号、小程序的unionid是相同的,这...
微信小程序——获取用户unionId
微信小程序——获取用户unionId
小程序获取用户unionid的方法
$code = $_GET['code'];//获取用户授权会有一个code,但要没被使用过的
//$code = &keMCx0jK9gf1nHVef13y3fp&;
先来看一段微信小程序对于unionid介绍如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用...
原文链接:https://my.oschina.net/u/3235888/blog/832895前言微信小程序API文档:mp.weixin.qq.com/debug/wxado…在实际的小程序开发...
因公司业务需要,接触了微信小程序,在做微信自动登录的时候遇到了问题,头像昵称未能获取到,在网上找了一个服务器端解密的方法,只能获取到用户openid和unionid,仅供参考,如果有大佬知道获取昵称头...
本文转自https://www.cnblogs.com/yaoyuqian/p/8203792.html  我们一般都是先获取到微信的 unionid,然后再通过 unionid 去登录自己的网站,就...
没有更多推荐了,

我要回帖

更多关于 微信头像手拿着烟 的文章

 

随机推荐