微信公众号开发之获取用户唯一的openid

现在我有一下开发需求:开发服务器收到微信服务器传送来的公众号用户的消息,通过某个参数判断其是否为同一个用户,并运行相应的逻辑回答问题。

最开始,服务器后台代码是通过收到的微信服务器发送来的消息的ip来识别是否是同一用户的,但是,经测试发现,明明是同一个用户发送来消息,发送给后台时显示的ip却是不一样的,确切的说是在不断变化的。这导致了后台代码不能正确识别,无法正确回答客户问题。之后,我上网几经查看,发现微信服务器不允许获取用户的真实ip地址,所以我猜测之前获得的ip地址,可能是微信后台服务器经过某种手段处理得到的。而与ip地址相对应,每一个微信公众号中的每个用户,都有一个唯一的标识符openid。故为我们制定一个解决方案:使用openid+‘#’+content的格式,服务器模式匹配区分#左右两边的字符串,获得openid和content。如果openid一样,则是相同的用户。

此外,为了获得openid,我又查了一些网页,大都是针对网页授权的途径来获取openid的,但是我们的业务目前并没有网页授权的需要,也没有相应的网页,不能提供url。正在我百思不得其解的情况下,我查到一篇文章,看到最下面一行字:<fromUserName>属性值即为用户的openid属性值,我天~这个<fromUserName>属性值是非常容易获取到的。于是乎,我就利用fromUserName+‘#’+content的字符串格式进行交互。经测试,结果正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值