WordPress插件,真微信公众号平台验证码查看

思路

这里先简单说一下这个设计思路,公众号验证码可见首先我们要设计一个验证码,这个验证码必须是唯一,并且是有过期时间的,从这一点来说,目前网上流传这些公众号验证码可见功能其实是假的,因为这个验证码是人工设置的,是一个固定的字符,使用一次之后就会知道。
首先想到的方法是采用一个公共的验证码池,就是一次性生成一些验证码,然后放在一个txt文件里面,然后去随机调用,读取文件之后组成数组,然后从数组中调出验证码,这个方法实现之后,然后经过思考了下,发现虽然能实现我需要的功能,但是没法用,毕竟这样等于验证码直接公开了,所以这个方法被淘汰了,又重新设计了另一个验证码方法。

验证码设计

重新设计的验证码方案是基于时间,域名和微信token的,时间上以1个小时为单位,那么有60分钟,每分钟对应一个验证码,就是有60个,比如13-12,分钟就是12,那么验证码可以简单的设为12,如果需要每2分钟换一次验证码,当前分钟数除以2就可以了,以此类推。

将网站域名和当前分钟拼接字符串,比如拼接成12https://gitcafe.net,再加上微信公众号token拼接成【12https://gitcafe.netweixintoken】,稍后对其加密计算,使用Sha1方法,计算出来是40位的字符串,我们截取其中6位作为验证码,这个时候再加入日期,比如今天是2-18,那么就从第18个截取6为字符串,保证一个月30天验证码不发生重复,最终这个6位字符串作为验证码可以发送到微信公众号以及用来验证网页输入的验证码是否正确。

验证码设计OK了,下面就是连接微信公众号了,在公众号示例代码基础上稍微改改,只保留微信类,其他代码全部不要,试验一下,OK,没问题。

微信端好了,然后就是WordPress端了,这里我要吐槽一下网上流行的那个微信公众号验证码可见的代码了,那么多时间还是一个原生的表单提交,而且是刷新之后会重复提交的。云落这里稍微改下,改为ajax提交实际体验会好些。

本文代码不重要,重要的是验证码设计思路,后面需要使用验证码的地方也可以这样设计,另外这种验证码有一个小缺点,就是过期时间并不是从验证码生成之后开始计算的,是验证码随着时间过期的,所以如果你在59秒时获取到验证码就会立马失效,当然这个只是小缺点,不妨碍使用,过期验证码重新申请就可以了。

插件使用

非常简单的插件,所以就没有后台,在插进里面有两个常量,自己定义下,一个是微信token,一个是公众号二维码图片,插件就一个文件打开一看就明白,另外说明下,Js代码使用Jquery的
另外一个就是管理员是没有效果的,管理员需要查看的话,需要退出账号看下

插件下载

发表评论