php微信开放平台获取openid,微信公众平台获取openid
微信公众平台可以通过接口获取用户的openid,但是获取用户信息的时候需要做一次跳转。
我在后台有一张用户表,用户如果关注了公众平台就将他的信息录入到数据库,包括openid。现在要做一个简单的系统,用户参加某些活动可以获得积分,积分可以兑换成金币,所以在页面中需要使用openid来标识每一个用户。
现在的问题是,活动有好几个页面,每个页面都需要用到openid,并且无法限定用户从哪个页面进入,想请问有没有办法将用户openid存储起来,在不同页面之间传递?
ps: session这种方式是不行的,微信浏览器对session的支持有问题,我抓包做过测试
回复内容:
微信公众平台可以通过接口获取用户的openid,但是获取用户信息的时候需要做一次跳转。
我在后台有一张用户表,用户如果关注了公众平台就将他的信息录入到数据库,包括openid。现在要做一个简单的系统,用户参加某些活动可以获得积分,积分可以兑换成金币,所以在页面中需要使用openid来标识每一个用户。
现在的问题是,活动有好几个页面,每个页面都需要用到openid,并且无法限定用户从哪个页面进入,想请问有没有办法将用户openid存储起来,在不同页面之间传递?
ps: session这种方式是不行的,微信浏览器对session的支持有问题,我抓包做过测试
微信对session的支持没有任何问题,session也不是存在微信上面的。真正有问题的是微信对cookie的支持,微信上面保存的所有cookie信息都是临时的,退出微信再重新打开就会导致cookie丢失,自然会导致session失效。
在一次会话内完全可以使用session保存用户的openID,如果是在多个域名之间跳转的话最好是在一个主域名的不同二级域名下,写cookie的时候设置好domain参数就可以;跨主域名的话会比较麻烦,一般也没有必要。
放redis这种缓存里
获取用户信息的时候需要网页授权,网页授权有静默授权(snsapi_base)和用户可感知的授权(snsapi_userinfo)
你只要openid的话用静默授权就可以了
静默授权流程:
用户打开你的页面-》跳转到微信授权页面-》跳转到你设定的页面并能够拿到code-》根据code拿到OpenId
拿到openid之后你可以保存到session,这个是绝对没问题的~
你先做一下检查:
1.确定下否真的拿到了OpenId
2.查看下服务端是否有保存session数据?
3.页面跳转比较多,最后session是保存在哪个域,这个要确定!
可能出现的问题:
因为PHP的session需要客户端的cookies来配合(保存PHPSESSID),如果客户端禁用了cookies,你可以把PHPSESSID放到URL里面进行传递或者写到html的header里面
如果活动人数不是很多,可以使用网页授权的方式去获取OpenId
以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的
无论用户从哪个页面进来,你都可以通过这种方式获取用户的OpenId。如果你需要在用户进入页面之后,将用户的openId在各个页面中传递,我记得PHP有个全局变量_global,各个页面贡献该变量,或者放在redis
不过在java中可以将变量放在ThreadLocal中,这样可以唯一确定是哪个用户,不知道PHP有没有类似的方法。如果多个用户同时进入,你要实现OpenId在各个页面传递,怎么标识唯一的用户
session是没问题的,可能是你哪出错了,还有另一种解决方案是用HTML5的本地存储localstorage,存Cookie也是一种办法
很奇怪你说的最后那句,微信内置浏览器对session支持有问题,那这么多跑在微信里的网站都是怎么工作的。
微信支持session没问题的**
通过一条图文回复,然后url连接里带上OPENID,这样连接到页面就可以了.
来,拿好:https://github.com/thenbsp/wechat/blob/master/example/oauth.php
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php微信开放平台获取openid,微信公众平台获取openid相关推荐
- 微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众
微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平 ...
- 微信公众开放平台开发02---微信公众平台PHP接口和java接口对比
微信公众开放平台开发02---微信公众平台PHP接口和java接口对比 技术qq交流群:JavaDream:251572072 ----------------------------------- ...
- 微信公众开放平台开发01---微信公众平台介绍,以及开发准备
微信公众开放平台开发01---微信公众平台介绍,以及开发准备 技术qq交流群:JavaDream:251572072 部分内容收集于网络: 1.先分享一份源码: 微信公众开放平台开发 -智能机器人ja ...
- 如何基于微信开放接口开发企业的微信CRM
业内一直都在传说微信是天生的 CRM,可是没有人看到过微信 CRM 的真容.随着微信最新公众平台的改版和开放接口的微信认证开放,微信 CRM 离企业越来越近.汉拓科技第一时间申请认证并对接了微信开放接 ...
- 如何基于微信开放接口开发企业的微信 CRM?
一直说微信公众平台可以做CRM,但都说得很肤浅,这篇文章比较详细的做了说明,值得一读: 转自:http://www.geekpark.net/read/view/193267 By 黑板报值日生 | ...
- 微信公众平台开发[1] —— 获取用户Openid及个人信息
前言: 初次尝试微信公众号的开发,对于学习方法的探索都是来源于网上的博客.问答,对于参差不齐的信息,自己也是有苦说不出,抽出一点时间写点文章,既是对自己的学习总结,也希望给予同是菜鸟的学渣一点帮助 背 ...
- 微信小程序中获取用户微信公众号授权(openid)用来发送模板消息
需求: 由于小程序不能直接向用户发送模板消息,所以需要用公众号向用户发送模板消息. 于是需要将小程序的openid和公众号的openid绑定在一起.提供两种思路: 方法一: 1.微信小程序和公众号都绑 ...
- 微信公众平台关于fakeid和openid的解析
今天在开发项目的时候遇到了个问题: 搞不清楚微信官方接口的fromusername(openid)和公众平台内每个粉丝所拥有的fakeid,于是在测试号中开始了对以上两项的研究,结果如下: 1.对 ...
- (转)微信公众平台关于fakeid和openid的解析
为什么80%的码农都做不了架构师?>>> 今天在开发项目的时候遇到了个问题: 搞不清楚微信官方接口的fromusername(openid)和公众平台内每个粉丝所拥有的fake ...
- 微信公众平台开放改名了 附修改公众号名称方法
前天我们刚爆了微信公众平台个人类账号一年内可主动修改一次名称,今天微信官方团队就发布关于公众平台开放改名公告,这次不仅是个人号了,企业类.媒体类.政府类.其他组织类的帐号也可以改名.(微信公众号ID也 ...
最新文章
- iostext添加点击事件_iOS给UILabel添加点击事件
- LAMP环境搭建之rpm软件包
- 从选秀策略看市场测试
- python解释器调用_python入门-python解释器执行
- STL常用对象,不会搞得C++跟没学一样
- SpringBoot连接多RabbitMQ源
- 修改hadoop中yarn的webui中显示的任务时间为中国时间
- 2020年中国住宿业市场网络口碑报告
- HDU 2089 不要62(数位DP)
- Java 算法 S01串
- Silverlight动画基础三:动画与向量-模拟重力效果
- 深入理解 Java 之 GC 到底如何工作
- Bailian4039 IP地址转换【进制】
- 【转】【经典算法】——KMP,深入讲解next数组的求解
- android图像与动画处理,在Android和iPhone上对照片进行动画处理的7种最佳应用 | MOS86...
- [含论文+源码等]javaweb银行柜员业务绩效考核系统
- Kettle构建Hadoop ETL实践(一):ETL与Kettle
- [Unity]使用状态机模式创建平台控制游戏(以Unity酱为例)
- 数控g71编程实例带图_数控车床g71怎么编程?请举个例子谢谢了
- 假如有人把支付宝的服务器炸了, 存在支付宝里的钱是不是没了?