直接上代码
<?php
class WechatAction extends Action {
/*微信企业号*/
private $signature;
private $timestamp;
private $nonce;
private $token;
private $corpid;
private $aeskey;
private $echostr;
/*
*微信企业号回调模式校验
*/
public function valid()
{
/*动态参数**** ↓ */
$this->token = C('QYWECHAT_TOKEN');
$this->aeskey = C('QYWECHAT_AESKEY');
$this->corpid = C('QYWECHAT_CORPID');
$this->signature = I('msg_signature','');
$this->timestamp = I('timestamp','');
$this->nonce = I('nonce','');
$this->echostr = I('echostr','');
import('CommonApi.Wechat.qywechat.WXBizMsgCrypt','','.php');
/*动态参数**** ↑ */
if( $this->checkSignature() ) {
$sEchoStr = "";
$wxcpt = new WXBizMsgCrypt($this->token, $this->aeskey, $this->corpid);
$errCode = $wxcpt->VerifyURL($this->signature, $this->timestamp, $this->nonce, $this->echostr, $sEchoStr);
if ($errCode == 0) {
echo $sEchoStr;exit;
} else {
print("ERR: " . $errCode . "\n\n");
}
}
}
private function checkSignature()
{
$tmpArr = array($this->token, $this->timestamp, $this->nonce, $this->echostr);
sort($tmpArr , SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $this->signature ){
return true;
}else{
return false;
}
}
}
?>