这两天做微信公众平台的时候遇到一个进入网页进行用户定位的功能,由于各方面原因,没有去使用微信提供的js定位。以前也没做过微信相关的开发-加之微信官方提供的API文档着实看着蛋疼,苦思无果,终于在第三天某位高人提了一点思路,哥顿时就茅塞顿开了!

话不多说,先上需求!

需求:类似美团外卖,进入公众平台以后点击订餐跳到网页直接定位加载数据!

实现框架:ThinkPHP

思路:

1.到微信开发者中心开启用户地理位置上报功能,实现每次用户进入公众号微信上报当前用户的地理位置到服务器。

2.服务器接收微信上报的用户地理位置,存入数据库,根据微信推送的openid来标识,数据库表字段id(int型,主键,自增长),openid(varchar型),localhost(text型)、

解释:

openid用户标识用户

localhost序列化存入微信推送的数据

思路:微信每次给服务器上报用户的地理位置信息会有一个openid这个就是用户标识哪个用户的数据。程序可直接根据openid来做入库。如果openid在数据库里面不存在,那么存入用户的openid和地理位置信息,如果openid存在就更新地理位置信息!

代码如下:



接口文档参考:
http://mp.weixin.qq.com/wiki/8/1b86529d05db9f960e48c3c7ca5be288.html

3.使用微信OAuth2.0授权来获取用户的openid。

此方法用户场景:用户点开链接以后,我们的服务器可以获取当前用户的openid,也就是上一步所说的openid。

这里我们需要用到微信的“自定义菜单”和“OAuth2.0授权”接口。

参考资料:

1.微信自定义菜单:http://www.cnblogs.com/txw1958/p/weixin-58-custom-menu.html

2.微信OAuth2.0授权获取用户openid:http://www.cnblogs.com/txw1958/p/weixin71-oauth20.html

4.用户点击菜单以后跳转到网页,这个时候已经获取到用户的openid了,然后再根据用户的openid去自己的服务器查询用户的地理位置信息!

思路流程:

1.用户进入微信公众号(这个时候微信已经把用户的地理位置上报给你的服务器了)

2.服务器获取微信上报的地理位置,根据用户的openid来入库或者修改

3.利用微信OAuth2.0授权的连接方式获取到用户的openid

4.根据openid查数据库即可得到用户当前的地理位置

思路虽然描述的简略了一点,但是流程大概是这样,其他实现方式都可举一反三!

更多相关文章

  1. 根据网址上的国家/地区将用户重定向到正确的数据库,我使用i18n fo
  2. PHP结合Redis来限制用户或者IP某个时间段内访问的次数
  3. 使用JOIN获取有关两个用户的信息
  4. PHP:如果用户没有按下提交按钮,则Mysql回滚多个查询(通过ajax完成)
  5. Zend数据库适配器-未捕获异常-堆栈跟踪显示用户名和密码
  6. 在MySQL数据库中存储无法访问的用户
  7. init-connectMysql对用户操作加审计功能
  8. mysql user表root 用户修改权限后出现无法访问数据库的解决方法
  9. Linux下修改MySQL初始密码、开启远程登录、授权远程登录用户

随机推荐

  1. golang map有什么用
  2. golang和erlang区别
  3. golang gin框架错误处理
  4. golang中创建错误的方法
  5. golang chan是否关闭
  6. golang web开发乱码的原因与解决方法
  7. golang与java语法上的区别
  8. golang-cache是全局吗
  9. golang中使用rand产生随机不重复数字
  10. golang中fscanf读取文件时把回车替换成0