OpenID
与 UnionID
的使用,以下为微信官方文档的的介绍,请注意区分:
- 在关注者与公众号产生消息交互后,公众号可获得关注者的
OpenID
(加密后的微信号,每个用户对每个公众号的OpenID
是唯一的。对于不同公众号,同一用户的OpenID
不同)。- 公众号可通过相应接口来根据
OpenID
获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。- 请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户账号的需求,需要前往微信开放平台(
open.weixin.qq.com
)绑定公众号后,才可利用UnionID
机制来满足上述需求。
OpenID
是普通用户的标识,对当前开发者账号唯一。一个OpenID
对应一个公众号。UnionID
是用户统一标识。针对一个 微信开放平台账号 下的应用,同一用户的UnionID
是唯一的。
OpenID
区分,而需要用 UnionID
区分。所以:当你出现这种情况,可以参考下面的指导进行 unionID
数据的后期获取 获取用户基本信息(UnionID机制)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /** * 根据用户已获得的 openID 获取其他信息 (主要为 unionID) */ public function getUnionidByOpenid( $openID = '' ){ |
根据在下的需求,选择了“网站应用开发” 的创建,然后按照官方提示进行材料的申请,一般需要三天以上
可以注意到,网站应用开发
的简要功能介绍
当应用创建通过后,必须还要满足接口权限的获取,会有工作人员主动联系,一般一天就能完成
为了保证同一个开发账号下对应微信用户的 UnionID 绑定使用,需要在下面的列表中绑定对应的公众号/服务号,文档中介绍一般要满足微信支付功能
access_token
时序图1 2 3 4 5 6 | 'WEIXIN_LOGIN' => array ( // 微信开放平台 使用微信账号登录App或者网站 配置信息 'OPEN_APPID' => 'wxbd961b2a6b7b2963' , //应用 AppID 'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90' , //应用 AppSecret |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public function wxIndex(){ //--微信登录-----生成唯一随机串防CSRF攻击 $state = md5(uniqid(rand(), TRUE)); $_SESSION [ "wx_state" ] = $state ; //存到SESSION $callback = urlencode( $this ->callBackUrl); '; |
网上看到一篇不错的文章,建议参考:微信公众号用户与网站用户的绑定方案
总结小点:
- 1.根据上面功能实现的最后,可以获取登录用户的信息,而其中的
openID
和UnionID
可存储数据库进行后期业务的处理.- 2.在下阐述能力有限,建议多参考官方开发文档,谷歌前辈的干货经验…
联系客服