通過(guò)這篇教程,你可以了解到這款WordPress插件的運(yùn)行機(jī)制,讓你的日志支持微信驗(yàn)證碼查看隱藏內(nèi)容,這樣可以用來(lái)給自己的公眾號(hào)進(jìn)行導(dǎo)流,也不失為一次有趣的回本方法。
- 原文來(lái)源:極客公園
這篇文章較為重要的就是起思路過(guò)程,值得一看。
思路
這里先簡(jiǎn)單說(shuō)一下這個(gè)設(shè)計(jì)思路,公眾號(hào)驗(yàn)證碼可見(jiàn)首先我們要設(shè)計(jì)一個(gè)驗(yàn)證碼,這個(gè)驗(yàn)證碼必須是唯一,并且是有過(guò)期時(shí)間的,從這一點(diǎn)來(lái)說(shuō),目前網(wǎng)上流傳這些公眾號(hào)驗(yàn)證碼可見(jiàn)功能其實(shí)是假的,因?yàn)檫@個(gè)驗(yàn)證碼是人工設(shè)置的,是一個(gè)固定的字符,使用一次之后就會(huì)知道。
首先想到的方法是采用一個(gè)公共的驗(yàn)證碼池,就是一次性生成一些驗(yàn)證碼,然后放在一個(gè)txt文件里面,然后去隨機(jī)調(diào)用,讀取文件之后組成數(shù)組,然后從數(shù)組中調(diào)出驗(yàn)證碼,這個(gè)方法實(shí)現(xiàn)之后,然后經(jīng)過(guò)思考了下,發(fā)現(xiàn)雖然能實(shí)現(xiàn)我需要的功能,但是沒(méi)法用,畢竟這樣等于驗(yàn)證碼直接公開(kāi)了,所以這個(gè)方法被淘汰了,又重新設(shè)計(jì)了另一個(gè)驗(yàn)證碼方法。
驗(yàn)證碼設(shè)計(jì)
重新設(shè)計(jì)的驗(yàn)證碼方案是基于時(shí)間,域名和微信token的,時(shí)間上以1個(gè)小時(shí)為單位,那么有60分鐘,每分鐘對(duì)應(yīng)一個(gè)驗(yàn)證碼,就是有60個(gè),比如13-12,分鐘就是12,那么驗(yàn)證碼可以簡(jiǎn)單的設(shè)為12,如果需要每2分鐘換一次驗(yàn)證碼,當(dāng)前分鐘數(shù)除以2就可以了,以此類推。
將網(wǎng)站域名和當(dāng)前分鐘拼接字符串,比如拼接成12https://gitcafe.net,再加上微信公眾號(hào)token拼接成【12https://gitcafe.netweixintoken】,稍后對(duì)其加密計(jì)算,使用Sha1方法,計(jì)算出來(lái)是40位的字符串,我們截取其中6位作為驗(yàn)證碼,這個(gè)時(shí)候再加入日期,比如今天是2-18,那么就從第18個(gè)截取6為字符串,保證一個(gè)月30天驗(yàn)證碼不發(fā)生重復(fù),最終這個(gè)6位字符串作為驗(yàn)證碼可以發(fā)送到微信公眾號(hào)以及用來(lái)驗(yàn)證網(wǎng)頁(yè)輸入的驗(yàn)證碼是否正確。
驗(yàn)證碼設(shè)計(jì)OK了,下面就是連接微信公眾號(hào)了,在公眾號(hào)示例代碼基礎(chǔ)上稍微改改,只保留微信類,其他代碼全部不要,試驗(yàn)一下,OK,沒(méi)問(wèn)題。
微信端好了,然后就是WordPress端了,這里我要吐槽一下網(wǎng)上流行的那個(gè)微信公眾號(hào)驗(yàn)證碼可見(jiàn)的代碼了,那么多時(shí)間還是一個(gè)原生的表單提交,而且是刷新之后會(huì)重復(fù)提交的。云落這里稍微改下,改為ajax提交實(shí)際體驗(yàn)會(huì)好些。
本文代碼不重要,重要的是驗(yàn)證碼設(shè)計(jì)思路,后面需要使用驗(yàn)證碼的地方也可以這樣設(shè)計(jì),另外這種驗(yàn)證碼有一個(gè)小缺點(diǎn),就是過(guò)期時(shí)間并不是從驗(yàn)證碼生成之后開(kāi)始計(jì)算的,是驗(yàn)證碼隨著時(shí)間過(guò)期的,所以如果你在59秒時(shí)獲取到驗(yàn)證碼就會(huì)立馬失效,當(dāng)然這個(gè)只是小缺點(diǎn),不妨礙使用,過(guò)期驗(yàn)證碼重新申請(qǐng)就可以了。
插件說(shuō)明
Js代碼使用Jquery的
另外一個(gè)就是管理員是沒(méi)有效果的,管理員需要查看的話,需要退出賬號(hào)看下
如何使用
插件就一個(gè)wx.php文件,直接下載后上傳安裝,后臺(tái)激活,公眾號(hào)開(kāi)發(fā)服務(wù)器地址 : 首頁(yè)?xxoo 后面字符隨便 設(shè)立token,然后把token寫(xiě)在插件文件里面wx.php,里面就需要寫(xiě)token和二維碼圖片,沒(méi)有后臺(tái) 設(shè)置 (全靠手動(dòng)修改哦)
隱藏短代碼: [wxcaptcha]隱藏內(nèi)容[/wxcaptcha]
填寫(xiě)規(guī)范:

define('WX_TOKEN', '我的微信Token');
define('WX_QR', '我的公眾號(hào)二維碼');
