最近在做项目的时候有一个需求:公司同一个应用需要发布多个app(相同功能代码),微信登录、QQ登录、微博登录和手机登录之后是同一个用户信息,且均能实现支付宝、微信支付功能。手机登录不必多说,手机号密码一致即可。这样的话,微信就得申请两套参数,QQ也得申请两套参数,微博特殊,可以直接在后台添加新的包名和签名就行。
微信两套参数,同一个开发者账户下的应用,微信登录返回信息中的unionid是一致的,直接把这个给到服务器作为同一个用户登录的标志即可得到本平台(公司应用)相同的账户信息。微博后台填写包名和签名之后,这几个不同包名的多胞胎应用都会返回相同(一致)的用户信息,不用管还是原来的直接给到后台就能得到本平台相同的账户信息。
原本以为QQ也是和微信类似的样子,【但是】在我替换为两套参数之后傻眼了,发现返回的openid等信息完全不一样,在网上查到了这样的信息“在腾讯开放平台上,同一个QQ号码在不通的APP里返回的OpenID不一样且完全没有关联,这样的设计是处于什么考虑?”
链接:http://www.zhihu.com/question/20265131/answer/46148271
原来OpenID 机制就是这样的,不同的 appid 生成的 openid 不相同。好在腾讯官方提供了打通两个 appid 生成的 openid 的机制,下面是客服的回答:
appid的打通有2种方式:
1、只有一个有用户数据或者两个都没有用户数据
其中一个已有用户数据,需要以有用户数