VPS主机与服务器★ 4.9 推荐评级

博客引流公众号自动生成验证码:微信公众平台验证码查看插件

博主头像站长评测
发布于 2020/03/15(修订于 2021/01/01)原创独立站体系

之前笔者分享过3种实现博客公众号引流的方法,其中就包括使用关键词回复获取密码的插件,不过那个插件的验证码是站长手动输入的,今天给大家推荐的这款是自动生成和获取验证码,实现验证码自动更换引流的功能。

插件代码如下:

captcha = $wx\_captcha; } private function checkSignature() { $signature = $\_GET\["signature"\]; $timestamp = $\_GET\["timestamp"\]; $nonce = $\_GET\["nonce"\]; $token = WX\_TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT\_STRING); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if ($tmpStr == $signature) return true; else return false; } protected function valid() { $echoStr = $\_GET\["echostr"\]; //valid signature , option if ($this->checkSignature()) { echo $echoStr; exit; } else { echo 'error signature'; } } public function responseMsg() { //如果是验证请求,则执行签名验证并退出 if (!empty($\_GET\["echostr"\])) { $this->valid(); //验证签名是否有效 return; //返回退出 } if ($\_SERVER\['REQUEST\_METHOD'\] != 'POST') { echo ''; return; } //如果不是验证请求,则 //首先,取得POST原始数据(XML格式) //$postData = $GLOBALS\["HTTP\_RAW\_POST\_DATA"\]; $postData = file\_get\_contents('php://input'); if (empty($postData)) { echo ''; return; } //如果没有POST数据,则退出 if (!empty($postData)) { //解析POST数据(XML格式) $object = simplexml\_load\_string($postData, 'SimpleXMLElement', LIBXML\_NOCDATA); $messgeType = trim($object->MsgType);//取得消息类型 $this->fromUser = "" . $object->FromUserName; $this->toUser = "" . $object->ToUserName; $keyword = trim($object->Content); if( $messgeType == 'text' && $keyword == '验证码') { $response\_content = '您的验证码为:【'.$this->captcha.'】,验证码有效期为2分钟,请抓紧使用,过期需重新申请'; $xmlTemplate = " %s %d "; $xmlText = sprintf($xmlTemplate, $this->fromUser, $this->toUser, time(), $response\_content, 0); echo $xmlText; } } else { echo ""; exit; } } } //class end //生成微信验证码 function wx\_captcha(){ date\_default\_timezone\_set('Asia/Shanghai'); $min = floor(date("i")/2); $day = date("d"); $day = ltrim($day,0); $url = home\_url(); $captcha = sha1($min.$url.WX\_TOKEN); $captcha = substr($captcha , $day , 6); return $captcha; } function wx\_process() { global $object; $object = new Wechat\_Captcha(wx\_captcha()); $object->responseMsg(); return; } add\_action('pre\_get\_posts', 'wx\_process', 4); /\*\*\* 微信端结束 \*\*\*/ /\*\*\* WP端开始 \*\*\*/ //密码可见 function wx\_captcha\_view() { $action = $\_POST\['action'\]; $post\_id = $\_POST\['id'\]; $pass = $\_POST\['pass'\]; $wxcaptcha = wx\_captcha(); if(!isset( $action ) || !isset( $post\_id ) || !isset( $pass ) ) exit('400'); if($pass == $wxcaptcha ) { $pass\_content = get\_post\_meta($post\_id, '\_pass\_content')\[0\]; exit($pass\_content); }else{ exit('400'); } } add\_action('wp\_ajax\_nopriv\_gdk\_pass\_view', 'wx\_captcha\_view'); add\_action('wp\_ajax\_gdk\_pass\_view', 'wx\_captcha\_view'); // 部分内容输入密码可见 function gdk\_secret\_view($atts, $content = null) { $pid = get\_the\_ID(); add\_post\_meta($pid, '\_pass\_content', $content, true) or update\_post\_meta($pid, '\_pass\_content', $content); if ( current\_user\_can( 'administrator' ) ) { return $content; }//admin show return '
本段内容已被隐藏,您需要扫码关注微信公众号申请验证码查看,发送【验证码】获取验证码,验证码2分钟有效
  
'; } add\_shortcode('wxcaptcha', 'gdk\_secret\_view'); //按钮 function wx\_captcha\_btn() { ?>
<script type="text/javascript">
QTags.addButton( 'wxcaptcha', '微信公众号验证码可见', '\[wxcaptcha\]', '\[/wxcaptcha\]\\n' );//快捷输入标签
</script>
<?php

} add_action(‘after_wp_tiny_mce’, ‘wx_captcha_btn’);

/*** WP端结束 ***/

你需要配置的地方就两处:

// 此token必须和微信公众平台中的设置保持一致 define(‘WX_TOKEN’, ‘’); define(‘WX_QR’, ‘’);//公众号二维码

一个是wx_token,在微信公众号管理后台可以获取,另外一个就是你公众号的二维码图片地址。

下载地址

使用方法:

1、下载并安装插件

2、修改插件的wx_token和wx_qr的值。

3、发文章使用短代码[wxcaptcha]和[/wxcaptcha]把需要隐藏的内容包裹起来。

作者发布地址:https://gitcafe.net/archives/10584.html