OpenId и unionId открытой платформы WeChat

Я хочу реализовать вход в WeChat. Читая документацию, я наткнулся на два разных параметра, значение которых мне не совсем понятно: openId и unionId.

Может ли кто-нибудь объяснить, что на самом деле представляют собой эти идентификаторы? Насколько я понял должно быть так:

  • openId - некоторый уникальный идентификатор пользователя, который может время от времени меняться

  • unionId - уникальный идентификатор пользователя, единственный, который всегда один и тот же. Эквивалентно уникальному идентификатору, который возвращает Google при входе в систему с помощью Google API.

Документацию, которую я прочитал, можно найти здесь: http://open.wechat.com/cgi-bin/newreadtemplate?t=overseas_open/docs/web/login/getting-user-profile#login_getting-user-профиль


person pixie    schedule 14.10.2016    source источник


Ответы (3)


Насколько я понимаю, открытые идентификаторы пользователя варьируются от веб-приложений к приложениям, тогда как идентификатор объединения остается неизменным. Например, у вас есть два приложения, которые используют вход через WeChat: W1 и W2. У пользователя будет openid1 для W1 и oepnid2 для W2 отдельно, но вы можете использовать идентификатор объединения пользователя, чтобы однозначно идентифицировать его/ее в приложениях.

Открытый идентификатор меняется только в том случае, если у вас более одного веб-приложения или мобильного приложения.

Надеюсь, поможет. Спасибо.

person Bella    schedule 07.11.2016
comment
Да, это был мой вывод, а в конце. Спасибо :) - person pixie; 25.01.2017
comment
тогда вопрос в том, зачем кому-то использовать openID? - person dcsan; 05.07.2017
comment
@dcsan Я тоже хотел бы это знать - person veich; 27.11.2017
comment
В китайских документах (с переводом Google) говорится: Это поле появится только в том случае, если мобильное приложение было userinfo авторизованным пользователем. Но я не уверен, что это значит - person veich; 27.11.2017

зачем кому-то использовать openID - это очень хороший вопрос от @dcsan.

从api来讲的话,最大区别就是 unionId 需要 openId 和 access_token 去取得,也就是多了一个auth step。

从实用角度来看,openId更多起了一种 анонимизация данных 的作用。

除此之外 насколько я понимаю,

openId = f(unionId, appId), где f是一个хеш-функция,и т. д.

Обновите, это, вероятно, что-то более похожее =

openid = f(userId, appId) 
unionid = f(userId, appOwnerId)

где f是一个хеш-функция

person Archy Will He 何魏奇    schedule 01.03.2020

Когда у вашей компании более одной официальной учетной записи, один и тот же пользователь подписан на них обоих, открытый идентификатор для одного пользователя отличается. Чтобы решить эту проблему, мы разработали идентификатор союза, чтобы помочь идентифицировать другой openid, но одного и того же пользователя.

person rose    schedule 03.04.2018