首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP微信公眾號開發入門:服務器接入驗證完整流程

     編輯:PHP 綜合知識

微信公眾號開發第一步是實現服務器與微信後台的接入驗證。本文詳解從申請公眾號到完成URL驗證的完整流程,附PHP參考實作。

前置準備

  • 公眾號類型:服務號(月1次群發、功能強、適合企業服務) vs 訂閱號(日1次群發、適合媒體資訊)
  • 外網可訪問的Web服務器:需有合法域名與SSL憑證(HTTPS)
  • 開發者模式:公眾平台 → 功能 → 高級功能 → 開發模式(與編輯模式互斥)

接入驗證原理

  1. 開發者在公眾平台填寫 URL(接收微信推送)與 Token(自定義字串,用於簽名驗證)
  2. 微信服務器向URL發送 GET請求,攜帶四個參數:
    • signature:微信加密簽名
    • timestamp:時間戳
    • nonce:隨機數
    • echostr:隨機字串
  3. 開發者驗證簽名:將 token、timestamp、nonce 字典序排序拼接 → SHA1加密 → 與 signature 比對
  4. 驗證通過:原樣返回 echostr;失敗:返回空或錯誤資訊

PHP驗證實作

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 = [$this->token, $timestamp, $nonce];
        sort($tmpArr, SORT_STRING);
        $tmpStr = sha1(implode($tmpArr));

        return $tmpStr === $signature;
    }

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

關鍵注意事項

  • Token一致性:代碼與公眾平台後台設定必須完全相同
  • URL可訪問性:需為公網HTTPS、80/443埠、無防火牆攔截
  • 響應時效:必須在5秒內返回 echostr,否則驗證失敗
  • 驗證通過後:建議註解掉 valid() 呼叫,正式處理業務邏輯

後續發展

驗證通過即成為開發者,可進一步實現:自動回覆、自定義選單、網頁授權、微信支付、模板消息、客服消息等高級功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved