首頁 >後端開發 >php教程 >php微信開發存取實例詳解

php微信開發存取實例詳解

墨辰丷
墨辰丷原創
2018-06-01 14:32:122476瀏覽

這篇文章主要為大家詳細介紹了php微信開發接入,透過檢驗signature對請求進行校驗,感興趣的小伙伴們可以參考一下

#微信,想必大家都不陌生,像支付寶一樣在悄悄的改變大家的生活方式。伴隨著這種新的生活方式,越來越多的微服務也開始進入我們的生活,我們可以使用微信查詢信用卡帳單、還款、支付,在最近的一次微信合作夥伴大會上,騰訊向公眾服務號開放支付功能與九大高級接口,透過這些接口,開發者可以實現使用利用微信搖控電視、冰箱、洗衣機甚至電飯煲,使用微信的微支付功能,還能方便地在線購買電影票、手機儲值、收看網路電視付費節目等。

下面,就我個人的了解,簡單講述一下微信開發的第一步,如何與微信伺服器對接。

想要涉足微信開發,第一步就是要申請一個微信公眾號。公眾號分為服務號和訂閱號。服務號,故名思義,主要是對用戶提供服務的,一般是企業或是服務業用的比較多,功能相對訂閱號要強大一些,可以自訂用戶菜單;但也有不方便的地方,就是服務號一個月只允許發送一條群組訊息。訂閱號,主要是提供資訊和資訊,一般是媒體用的比較多,功能相對服務號要弱一些,但可以每天發送一則群組訊息。以下的講述,都是以服務號為基礎。

微信公眾號申請好之後,我們還需要一個對外的WEB伺服器,方便和微信伺服器進行資料互動。這一步我就不細講了,百度和新浪都提供這個服務。

登入微信公眾平台,在左側的導航選單中選擇“功能”--> “高級功能”,微信為我們提供了兩種“編輯模式”和“開發模式” ,這兩種模式互斥,即如果開啟了“編輯模式”,則需要將“開發模式”關閉,反之亦然。 「編輯模式」又稱傻瓜模式,開發者可以直接在平台上定義選單,設定自動回覆等功能。這裡定義的選單功能比較弱,使用者點擊自訂選單後,只能夠回覆訊息或是開啟一個網頁,如果需要根據使用者點擊的選單做一些其他動作,則需要使用到「開發模式」。

使用」開發模式「的前提是您必須申請成為開發者。

         第一步需要指定接收微信伺服器資料的URL,同時也需要指定一個TOKEN(由開發者任意填寫,用於產生簽章),用於存取時的驗證。 

        第二步驟要驗證您指定的URL的有效性,微信伺服器會像您指定的URL傳送一個GET請求,該請求攜帶四個參數。

開發者透過檢驗signature對請求進行校驗。若確認此GET請求來自微信伺服器,請原樣回傳echostr參數內容,則存取生效,成為開發者成功,否則存取失敗。 

PHP檢定程式碼如下。 

<?php

  $wechatObj = new wechatCallbackAPI();
  $wechatObj->valid(); 


  class wechatCallbackAPI {

    private $token = "WEIXIN";

    private $appId = "APPID";

    private $appSecret = "APPSECRET";
    
    private function checkSignature() {
      $signature = $_GET["signature"];
      $timestamp = $_GET["timestamp"];
      $nonce = $_GET["nonce"];  
          
      $tmpArr = array($this->token, $timestamp, $nonce);
      sort($tmpArr);
      $tmpStr = implode($tmpArr);
      $tmpStr = sha1($tmpStr);
      
      if($tmpStr == $signature) {
        return true;
      } else {
        return false;
      }
    }

    public function valid() {
      $echoStr = $_GET["echostr"];
      
      //valid signature, option
      if($this->checkSignature()){
        echo $echoStr;
        exit;
      }
    }
  }
?>

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHP 匿名函數與注意事項詳解

PHP實作的登錄,註冊及密碼修改功能

PHP中call_user_func_array回呼函數的用法


以上是php微信開發存取實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn