配置
微信二次开发的配置首先是URL,URL的开头必须是http或https,其次是token值token值必须与文件中的token值一致才能配置成功。
思路
先得到微信加密签名(signature)、时间戳(timestamp)、随机数(nonce)、随机字符串(echostr),然后将token,timestamp, nonce组成一个数组再排序,转化成字符串再进行加密,如果加密后的字符串与微信加密签名一致返回true,否则返回false。
代码
define("TOKEN", "123456");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->run();
class wechatCallbackapiTest
{
public function run()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}