打开网站首页, 点击上岸按钮, http://XXXX/index

点击上岸, 弹出二维码

手机微信扫码后, 跳转到公众平台

php三方登录第三方登录 Python

如果用户已经关注, 则直接上岸

如果用户没有关注, 就提示用户关注, 关注后, 直接上岸

扫码后到底 前台 -- 后台 -- 微信 之间发生了哪些不可告人的秘密呢?本系列文章利用PHP-Laravel框架带大家一步一步实现微信上岸的功能

利用Laravel实现做事端利用workerman实现websocket做事器

二. 事理

客户端点击上岸, 向后台发起要求, 获取ticket和scene_id(随机天生的整数)

客户端利用ticket向微信服务器发起要求, 获取二维码https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=abc并且向后台websocket做事端发起websocket连接, 并且推送scene_id, 后台将scene_id加入到连接数组里

用户利用微信扫码, 点击关注, 微信"大众年夜众号将用户关注事宜推送到PHP做事端

PHP做事端利用openid要求微信服务器, 获取用户详细信息, 保存到数据表, 然后向websocket做事端推送openid和scene_id

websocket做事端吸收到php做事端推送来的openid和scene_id, 利用scene_id确定详细是哪一个客户端, 然后向其推送openid

客户端吸收到websocket的推送, 携带openid向php做事端要求login登录接口, php做事端将openid写入到session中, 标识用户已经登录