自己的服务器apache项目目录test文件夹下新建wx文件夹
wx文件夹下新建 index.php
cd htdocs/local/apache/htdocs/test
mkdir wx
cd htdocs/local/apache/htdocs/test/wx
touch index.php
更改test文件夹所属的用户和组
cd htdocs/local/apache/htdocs/
chown web:web -R test
修改index.php文件
<?php
header('Content-type:text');
define("TOKEN", "weixin");//定义TOKEN为你自己设置的字符串
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
//微信验证开发者模式token验证,get请求中有echostr变量
$wechatObj->valid();
}else{
//无echostr变量,说明不是验证(后续操作才会到这一步)
echo "你不是微信验证吧!";
}
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];//随机字符串
if($this->checkSignature()){
//验证通过,返回echoStr
header('content-type:text');
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];//微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
$timestamp = $_GET["timestamp"];//时间戳
$nonce = $_GET["nonce"];//随机数
$token = TOKEN;//得到你上面设置的TOKEN
/**
1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
*/
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
//验证成功
return true;
}else{
//验证失败
return false;
}
}
}
?>
打开前台页面,填入验证信息,
开发模式首先需要你有自己的服务器,域名,而且域名已经解析到服务器,并可以正常访问
测试这个条件是否成立,可以直接访问
你的域名/wx/index.php
查看是否输出了 “你不是微信验证吧!”
如果输出了,说明环境没有问题