
应该是要数据库支持的。 每个投票项目应该有个id。 然后每个用户有useropenid, 每个投票的id,只能有一条useropenid的投票记录。 投票保存的时候先检查一下是否已经存在该用户的投票记录。 投票用户从微信进入投票jsp页面时
获取微信用户的openid目前有两种方法:
一是先回复一条图文消息,将用户的openid带在链接上,然后用户通过点击图文消息的链接打开最终的页面,这么做用户体验非常非常不好,而且每个菜单都得这么干;
二是调用服务号的高级接口,可是我们大部分都是用订阅号。
那怎么通过js获取微信用户的openid?
答:目前微信服务号在网页获取微信用户openid就这两种方法,订阅号只能通过图文或文本消息打开网页,自己传用户的openid。
前几天和业务谈需求的时候提到了要在微信公众号里面做一个申请页面A。当时我对微信的了解还不是很多,只知道公众号上原来已经做了一个其他功能的页面B,B页面可以获取到客户微信的openid。
当时我们业务同事说只有B页面可以拿到openid,其他的页面都拿不到,所以这个正在谈的A页面入口要做在已有页面B上,然后通过B获取openid之后再传给A。我当时因为不懂也只能听他说,毕竟那个同事说的好像很确定的样子。
事后我仔细想了想,页面B也就是个普通的html呀,凭什么就B页面能获取客户的openid呢?肯定有方法的!于是我就上网搜了一下,最后成功获取了自己的openid,下面介绍下方法吧。
首先,你要有个微信公众号,并且要获得这个接口的权限
点修改之后,在功能设置的“网页授权域名”处添加可以获取微信openid的域名,也就是你自己公众号里面需要获取openid网页的域名。
做完上面这些之后,其实已经可以实现我们想要的效果了,这里因为我不是要做一个完整的功能,我只是想试验下html的页面怎么获取openid,所以过程比较简陋。
这里是微信官方的网页授权方法:
其实看起来微信的说明有那么一大段,但核心的内容也就那么一点点,总结下来就是:先拿到code,再用code去换取网页授权access_token。
因为重定向的url要urlEncode,所以这里我用另一个网站把我要访问的url转换了一下,网址如下:
在微信浏览器里面输入下面的url,appid、redirect_uri改成自己的,其他的都可以不用改。
静默授权:scope=snsapi_base
非静默授权:scope=snsapi_userinfo
一般在微信中是看不到url也没办法输入url的,所以这里我是用微信开发者工具调试的。
输入完静默授权的url后,url自动跳转成有code的,这个code只有5分钟有效期。
同样的,获取openid也就是在微信浏览器中执行一下下面这个url就可以了。appid,secret换成自己的,code用上面一步获取的,其他的都不用改。
运行完后的结果就显示在左边这个图里啦,你看,openid不就拿到了吗。
我没尝试非静默授权的,不过我想应该也差不多吧。这里也不是一套完整的方案告诉大家怎么把这个部署到前端和后端自动获取openid。我只是想分享一下我试验的经历。
微信公众号新的验证方式,比之前的安全性高了,所以要获取openid,也不在直接写在url上
配置 《网页授权获取用户基本信息》的回调地址,也是就我们url的指向地址,
在修改里写上url ,但是 不要加>
应该是要数据库支持的。
每个投票项目应该有个id。
然后每个用户有useropenid,
每个投票的id,只能有一条useropenid的投票记录。
投票保存的时候先检查一下是否已经存在该用户的投票记录。
投票用户从微信进入投票jsp页面时,需要将useropenid参数传递过去(如果页面有分享功能,useropenid得post过去)。
而在用户与你的公众号互动的时候,微信传递过来的消息里面有用户的useropenid(xml信息里的fromuser)。
如果在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
我们要进行授权,先要经过用户授权(静默授权和授权页d出授权两种,具体看文档中scope解析)拿到 code ,再用 code 去换取网页授权 access_token, 使用access_token 去拿到用户的信息。
关于微信网页授权的官方文档说明:
>
paip微信菜单直接跳转url和获取openid流程总结
#------不能直接跳转,贝儿提示不安全的链接
#-------使用auth跳转
//todox 直接转到。。 direct goto
ViewButton skrechCard = new ViewButton("刮刮卡o428,view," +
"" +
"appid="+appId+"&" +
"redirect_uri="+webSite+"mobile/cardjspactid=1" +
"" +
"&response_type=code&scope=snsapi_base&state=1" +
"#wechat_redirect");
#------auth跳转实际跳转url
这个url执行后,走自动redirect到个
webSite+"mobile/cardjspactid=1&code=xxxx&state=1
作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qqcom
转载请注明来源:
#---url跳转的调试
只要不个wlan break奏能看见平板上显示url错误兰
#-------获取openid
,但是view不能获取用户的openid,需与网页授权获取用户基本信息接口结合使用,获得用户的登入个人信息。
a配置授权回调页面域名
进入微信公众平台后台后,依次进入 服务-我的服务,找到OAuth20网页授权,
微信自定义菜单view类型获取openid访问网页
4
点击右侧的修改
授权回调域名配置规范为全域名并且不带>
以上就是关于如何用tomcat发布一个获取微信openid的链接全部的内容,包括:如何用tomcat发布一个获取微信openid的链接、如何获取微信用户openid、H5页面静默授权获取微信openid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)