微信之门

微信里的 cookie 不是持久的,据我测试,有时关闭微信再打开就没有了。Android 和 IOS 中保存的具体时间可能有所不同。

之前想用 cookie 区别唯一用户来着,后来发现不行。但又没有服务号做 Oauth授权,着实头疼了好一阵子。后来找到这个,解决了我的问题:
微信之门api: http://wgate.gaitianxia.com/


更新说明:新增显示授权方式,以获取用户信息,以及获取用户信息的API接口: wgate_user。显示授权需要先在平台注册用户并验证手机号。

微信打开的网页,是无法持久存贮 cookies 的,你知道吗?
那么如何辨识唯一用户呢?

是的,使用微信服务号!服务号拥有高级接口,可以给让网站通过微信的OAuth2授权, 获得用户的 OpenID, 从而辨别一个唯一用户。
那么,没有微信服务号呢? 

这就是微信之门诞生的原因。

使用非常简单!
对于任意需要辨识唯一用户的网站,只需要一个页面跳转即可:

http://www.weixingate.com/gate.php?back=url&force=1

参数说明:

  • back: 需要跳转到的 url. 需要使用 urlencode(php写法,其它语言也有自己的方法).
  • force: 1,强制必须使用微信授权, 非微信打开网站将会出现微信授权错误页面; 0,不强制使用微信授权,使用非微信打开网站,不能授权时将返回空的wgateid. 默认值: 1
  • info: 是否获取用户信息。可选值:none,不获取用户信息; basic, 获取用户信息。会有微信的授权页面弹出,同一个用户只授权一次; force, 获取用户信息,并且强制显示授权,可用于更新用户信息。跳转返回时不会直接返回用户信息,需使用 wgate_user 接口获取,详情请见下文。

注意: info值为 basic,force 时,为控制潜在的风险,需要绑定该域名的用户验证用户手机号,以加强安全性。请到"用户中心->设置用户"中操作。未验证手机号,将会有每天100次的限制。超限的请求会默认使用none作为info的值。

微信之门会通过微信授权, 拿到用户的 openid, 并转换为 wgateid 作为参数跳转回指定的URL.
返回参数:

  • wxopenid: 获取到的 openid 此参数更名为: wgateid, 但仍兼容老版本参数, 会同时传递 wxopenid 和 wgateid
  • wgateid: 获取到的 id
  • verify: 校验码. 每次的获取 wgateid 的动作都会生成唯一的一个校验码, 网站可以通过这个校验码访问微信之门的校验接口,验证这个wgateid 是否是从微信之门发出的. 以防止恶意行为. 校验码在120秒内有效.

注意: 使用微信之门的接口, 请先注册用户, 并且在"网站管理" 中添加域名(可以查看实时请求流量哦). 未添加的域名, 将会有每天最多100次的请求限制.

验证接口:

http://www.weixingate.com/verify.php?wgateid=用户wgateid&verify=校验码

验证接口用于验证gate.php接口是否真正来自微信之门。返回值为字符串 "true" 或者 "false".

  • wgateid: 必填. 前面获取到的 wgateid
  • verify: 必填. 前面获取到的 verify 校验码
  • jsonp_callback: 可选. 若需要在JS里通过JSONP方式获取时,可设置该参数。具体JSONP的使用方法请参考GOOGLE。

获取用户信息接口:

http://www.weixingate.com/wgate_user.php?wgateid=用户wgateid

参数说明:

  • wgateid: wgate接口中返回的用户wgateid.
  • jsonp_callback: 可选. 若需要在JS里通过JSONP方式获取时,可设置该参数。具体JSONP的使用方法请参考GOOGLE。

对于wgate接口中info参数使用了显示授权方式(basic或者force)的wgateid,
可以通过此接口获取用户的信息(昵称,性别,位置等),返回数据为JSON格式。
如需JSONP,请添加jsonp_callback参数,使用方法同verify接口。
如果该用户ID在系统中不存在,会返回"null"。

例如:

http://www.weixingate.com/gate.php?back=http%3A%2F%2Fwww.baidu.com
授权后将会跳转到:
http://www.baidu.com?wgateid=用户wgateid&verify=校验码

一个典型的应用场景示例:缘分测试 (使用微信扫描打开)

(欢迎将您的案例展示在这里,地址请发送到页面的联系邮箱)

微信之门的设计非常简单, 它能做什么? 不能做什么?

  • 能做: 通过授权获取唯一用户的 wgateid, 并通过显式授权获取用户信息。
  • 不能做: 除了能做的其它任何事情

综上所述, 微信之门适合需要唯一用户身份辨识需求 不需要依赖微信公众号的网站..

如果您有什么想法和建议或者意见,欢迎通过下边的联系方式提供给我们,一起来完善它以提供更方便的服务。

如有疑问, 请联系 cnhuye@gmail.com
微信方面的讨论 请加群 98749981(验证问题,请填写完整的微信接口的域名: api.weixin.qq.com)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值