微信开放平台openId和unionId
WeChat open platform openId and unionId
我想实现微信登录。在阅读文档时,我遇到了两个我不完全理解其含义的不同参数:openId 和 unionId。
有人可以解释一下这些 ID 的真实含义吗?据我了解应该是这样的:
openId - 一些 用户的唯一 ID,可能会不时更改
unionId - 用户唯一id,唯一始终不变的id。相当于Googlereturns登录时使用GoogleAPI的唯一id。
我阅读的文档可以在这里找到:http://open.wechat.com/cgi-bin/newreadtemplate?t=overseas_open/docs/web/login/getting-user-profile#login_getting-user-profile
据我了解,用户的开放 ID 因网络应用而异,而联合 ID 保持不变。比如你有两个使用微信登录的应用:W1和W2。用户将分别拥有 W1 的 openid1 和 W2 的 oepnid2,但您可以使用用户的联合 ID 作为跨应用程序的唯一标识 him/her。
只有当您拥有多个 web/mobile 个应用时,打开 ID 才会更改。
希望对您有所帮助。谢谢。
当贵公司有多个公众号时,同一个用户关注两个,一个用户的open id不同。为解决这个问题,微信开发了union id来帮助识别不同openid但相同用户。
"why would anyone want to use an openID" - that is a very good question from @dcsan.
从api来讲的话,最大区别就是 unionId 需要 openId 和 access_token 去取得,也就是多了一个auth step。
从实用角度来看,openId更多起了一种 data anonymization 的作用。
除此之外 from what I understand,
openId = f(unionId, appId) where f是一个hash function,etc。
Update, it's probably something more like=
openid = f(userId, appId)
unionid = f(userId, appOwnerId)
where f是一个hash function
我想实现微信登录。在阅读文档时,我遇到了两个我不完全理解其含义的不同参数:openId 和 unionId。
有人可以解释一下这些 ID 的真实含义吗?据我了解应该是这样的:
openId - 一些 用户的唯一 ID,可能会不时更改
unionId - 用户唯一id,唯一始终不变的id。相当于Googlereturns登录时使用GoogleAPI的唯一id。
我阅读的文档可以在这里找到:http://open.wechat.com/cgi-bin/newreadtemplate?t=overseas_open/docs/web/login/getting-user-profile#login_getting-user-profile
据我了解,用户的开放 ID 因网络应用而异,而联合 ID 保持不变。比如你有两个使用微信登录的应用:W1和W2。用户将分别拥有 W1 的 openid1 和 W2 的 oepnid2,但您可以使用用户的联合 ID 作为跨应用程序的唯一标识 him/her。
只有当您拥有多个 web/mobile 个应用时,打开 ID 才会更改。
希望对您有所帮助。谢谢。
当贵公司有多个公众号时,同一个用户关注两个,一个用户的open id不同。为解决这个问题,微信开发了union id来帮助识别不同openid但相同用户。
"why would anyone want to use an openID" - that is a very good question from @dcsan.
从api来讲的话,最大区别就是 unionId 需要 openId 和 access_token 去取得,也就是多了一个auth step。
从实用角度来看,openId更多起了一种 data anonymization 的作用。
除此之外 from what I understand,
openId = f(unionId, appId) where f是一个hash function,etc。
Update, it's probably something more like=
openid = f(userId, appId)
unionid = f(userId, appOwnerId)
where f是一个hash function