一、文件准备:
1、下载wx_sample.php(自行百度下载),修改文件名(本人改为api.php),放于服务器某个目录下,此路径为公众平台配置服务器填的时候要用url。
2、打开api文件,修改TOKEN,按自己喜好修改,此TOKEN为公众平台配置服务器填的时候要用token 。
二、公众平台上的操作
1、登录公众平台,打开基本配置,配置服务器。
需要填写三个参数:URL、TOKEN、EncodingAESKey,
url:前面api.php放置的路径。
TOKEN:api.php文件中设置的TOKEN。
EncodingAESKey:可自动生成。
注:选明文模式。
三、点击提交,有两种结果:
1、提交成功,那么恭喜你,配置成功了。
2、TOKEN验证失败。
解决方法: ①、检查api文件代码,TOKEN是否一致,
②、是否调用了valid()方法,最好先不要调用responseMsg()方法。
四、api.php文件示例代码 :
<?php
//定义TOKEN密钥
define("TOKEN", "yeyu");
//实例化微信对象
$wechatObj = new wechatCallbackapiTest();
if(isset($_GET['echostr'])){
$wechatObj->valid();
}else{
$wechatObj->responseMsg();
}
//定义类文件
class wechatCallbackapiTest
{
//实现valid验证方法,实现对接微信公众平台
public function valid()
{
//接收随机字符串
$echoStr = $_GET["echostr"];
//进行用户数字签名验证
if($this->checkSignature()){
//如果成功,则返回接收到的随机字符串
ob_clean();
echo $echoStr;
//退出
exit;
}
}
//定义checkSignature
private function checkSignature()
{
//接收微信解密签名
$signature = $_GET["signature"];
//接收微信解密签名
$timestamp = $_GET["timestamp"];
//接收随机数
$nonce = $_GET["nonce"];
//把TOKEN常量赋值给$token变量
$token = TOKEN;
//把相关参数组装为数组
$tmpArr = array($token, $timestamp, $nonce);
//通过字典法进行排序
sort($tmpArr);
//把排序后的数组转化字符串
$tmpStr = implode( $tmpArr );
//通过哈希算法对字符串进行加密操作
$tmpStr = sha1( $tmpStr );
//与加密签名进行对比
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>