微信公眾平台接口開發已成企業數位化標配。本文以「創建自定義菜單」為切入點,串聯 Access Token 機制、HTTPS 請求封裝、數據存取邏輯,提供可直接落地的入門級實戰指南。
所有業務接口均需 access_token 驗證身份。獲取方式:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
注意:access_token 有效期 7200 秒,建議全域快取並提前刷新,避免並發重複請求導致封禁。
接口地址:
POST https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
權限說明:僅認證服務號擁有權限;未認證可申請「公眾平台測試號」(有效期 1 年)進行開發調試。
<?php
/**
* 通用 HTTPS 請求封裝
* @param string $url 接口 URL
* @param string $data JSON 格式請求體(GET 請求可省略)
* @return string 回應內容
*/
function https_request($url, $data = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 開發環境關閉驗證,生產建議開啟並配置 CA 憑證
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (!empty($data)) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
}
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
// 使用範例
// 獲取數據(GET)
$response = https_request($url);
// 存取數據(POST)
$response = https_request($url, $json_data);
?>
<?php
$access_token = '你的_access_token';
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$access_token}";
$menu_data = '{
"button": [
{
"type": "click",
"name": "今日推薦",
"key": "TODAY_RECOMMEND"
},
{
"name": "關於我們",
"sub_button": [
{"type": "view", "name": "官網", "url": "https://www.example.com"},
{"type": "click", "name": "聯繫客服", "key": "CONTACT_US"}
]
}
]
}';
$result = https_request($url, $menu_data);
var_dump(json_decode($result, true));
?>
urlencode,直接傳 UTF-8 字串。40001 (access_token 無效)、45009 (接口頻率超限)、40018 (按鈕名稱過長)。微信接口本質是「遠端資料庫操作」:
| 操作 | HTTP 方法 | 典型場景 |
|---|---|---|
| 存數據 | POST | 創建菜單、發送客服消息、新增素材 |
| 取數據 | GET | 獲取用戶列表、查詢菜單、下載素材 |