1、填寫服務器配置服務器
2、驗證消息來自微信服務器加密
咱們配置好上面的步驟提交後,微信服務器將發送GET請求到填寫的服務器地址URL上,GET請求攜帶參數以下表所示url
那麼 咱們檢驗signature對請求進行校驗(下面有校驗方式)。若確認這次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成爲開發者成功,不然接入失敗。加密/校驗流程以下:spa
1)將token、timestamp、nonce三個參數進行字典序排序code
2)將三個參數字符串拼接成一個字符串進行sha1加密blog
3)開發者得到加密後的字符串可與signature對比,標識該請求來源於微信排序
好了,以上是服務器接入微信的流程,下面咱們開始上代碼。token
1 public function index(){ 2 3 define("TOKEN", "weixin"); 4 5 if (isset($_GET['echostr'])) { 6 $this->valid(); 7 }else{ 8 $this->responseMsg(); 9 } 10 11 } 12 13 public function valid() 14 { 15 $echoStr = $_GET["echostr"]; 16 if($this->checkSignature()){ 17 header('content-type:text'); 18 echo $echoStr; 19 exit; 20 } 21 } 22 23 private function checkSignature() 24 { 25 $signature = $_GET["signature"]; 26 $timestamp = $_GET["timestamp"]; 27 $nonce = $_GET["nonce"]; 28 29 $token = TOKEN; 30 $tmpArr = array($token, $timestamp, $nonce); 31 sort($tmpArr, SORT_STRING); 32 $tmpStr = implode( $tmpArr ); 33 $tmpStr = sha1( $tmpStr ); 34 35 if( $tmpStr == $signature ){ 36 return true; 37 }else{ 38 return false; 39 } 40 }