关于多应用(不同包名)中三方登录和支付的一点坑

最近在做项目的时候有一个需求:公司同一个应用需要发布多个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、只有一个有用户数据或者两个都没有用户数据
其中一个已有用户数据,需要以有用户数据的 appid 做为主 appid;两个都无用户用户数据,就提供 appid 和 key,并指定其中一个做为主appid直接打通。

2、两个都已经有用户数据
需要指定一个做为主 appid(建议用户数据多的),并将另外一个的 openid 导出来以文本文档给到互联,互联转换后会给到开发商打通前后 openid 的对应关系表,开发商依据这份的对应表将这部份用户数据做好关联后,互联最后进行打通。
开通方式:发邮件到 [email protected] 申请,说明下要以哪种方式打通,哪个 appid 有数据。

也有说可以打通多余2个appid的朋友,具体看公司了。

目前情况就是这样,等我们处理好了继续补上下文,目前为止微信支付参数还在申请中ing…如果有看到的微信支付的朋友们,可以给加快一些速度哈。。。

你可能感兴趣的:(小知识)