<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    LaneWeChat微信PHP開發(fā)框架

    聯(lián)合創(chuàng)作 · 2023-09-24 16:06

    框架簡介

    LanWeChat 框架簡介:微信PHP開發(fā)框架,快速開發(fā)微信公眾號,以第三方代碼包的形式引入即可。

    免費(fèi)使用

    LanWeChat 免費(fèi)使用:非商業(yè)產(chǎn)品,免費(fèi)傳播與使用,并且可以商業(yè)化而無需授權(quán)。

    身經(jīng)百戰(zhàn)

    LanWeChat 身經(jīng)百戰(zhàn):已被中國聯(lián)通、奇虎360、東方國信等上市公司廣泛使用。

    PHP構(gòu)建

    LanWeChat PHP構(gòu)建:全部使用PHP代碼構(gòu)建,PHP跨平臺、開發(fā)高效的特性深受開發(fā)者喜愛。

    完全開源

    LanWeChat 完全開源:非常歡迎貢獻(xiàn)代碼。使用當(dāng)前最流行的開源協(xié)議WTFPL

    通俗文檔

    LanWeChat 通俗文檔:文檔通俗易懂,盡量規(guī)避專業(yè)術(shù)語,努力用最白話的形式表述。

    極易使用

    LanWeChat 極易使用:沒有復(fù)雜的代碼和新生語法,原生語言直接調(diào)用即可。

    開發(fā)語言:PHP

    版本要求:原則PHP5.3以上

    版本規(guī)避:若版本低于PHP5.3,則刪除本框架所有頁面開頭namespace一行即可。

    命名空間:本框架的命名空間均為LaneWeChat開頭。

    常識普及:

    一、微信公眾賬號分兩種,一種是訂閱號,一種是服務(wù)號。

    1、訂閱號是被動(dòng)響應(yīng)用戶消息功能,并且每天推送一條消息。
    
    2、服務(wù)號是300元/每年認(rèn)證,被動(dòng)響應(yīng)用戶消息,主動(dòng)給用戶發(fā)送消息,自定義菜單按鈕,網(wǎng)頁授權(quán)等功能,并且每月推送一條消息。
    
    3、訂閱號適合消息類,新聞?lì)悜?yīng)用,常常需要推送文章給用戶的;服務(wù)號適合自助查詢等。
    
    4、訂閱號被認(rèn)證后也享用自定義菜單等功能,仍舊是300元/每年

    二、專業(yè)術(shù)語:

    1、OpenId:微信服務(wù)器并不會(huì)告訴公眾號用戶的微信ID,即使是你的關(guān)注者也不行,為了解決開發(fā)中唯一標(biāo)識的問題,微信使用了OpenId,所謂的OpenId,就是用戶和微信公眾號之間的一種唯一關(guān)系。一個(gè)用戶在一個(gè)公眾號面前,享用唯一的OpenId,不會(huì)和別人重復(fù)。換言之,同一個(gè)用戶在另一個(gè)公眾號面前,是擁有另一個(gè)OpenId的。再直白些就是$openId = md5('用戶微信ID+公眾號ID')
    
    2、Access_Token:此項(xiàng)只有認(rèn)證號的功能才會(huì)使用的到,Access_token是一個(gè)授權(quán)標(biāo)識,即一個(gè)授權(quán)驗(yàn)證碼,一個(gè)標(biāo)識10分鐘內(nèi)有效,10分鐘的有效期內(nèi)公眾號的多個(gè)關(guān)注者可以使用同一個(gè)Access_Token。在使用主動(dòng)給指定用戶發(fā)送消息、自定義菜單、用戶管理和用戶組管理等功能的時(shí)候,每次操作需要給微信服務(wù)器以參數(shù)的形式附帶Access_token。
    
    3、Access_Token網(wǎng)頁版:本Access_Token網(wǎng)頁版授權(quán)時(shí)會(huì)使用到,和2中的Access_Toekn是不同的東西,不過使用我們的LaneWeChat微信快速開發(fā)框架是不需要了解這些的。Access_Token網(wǎng)頁版是說在用戶打開你的公眾號提供的網(wǎng)頁的時(shí)候,你的網(wǎng)頁需要獲取用戶的OpenId、昵稱、頭像等信息的時(shí)候授權(quán)用的。同時(shí),本Access_Token網(wǎng)頁版有兩種用法,一種是打開網(wǎng)頁后彈出一個(gè)授權(quán)框,讓用戶點(diǎn)擊是否授權(quán),界面像主流的開放平臺授權(quán)界面(比如QQ登陸某網(wǎng)站,支付寶賬號登陸某網(wǎng)站等);另一種是不需要彈出授權(quán)框仍舊可以獲取用戶信息,用法可以在實(shí)例中看到。

    如何安裝:

    1、本框架以代碼包的插件形式放在項(xiàng)目的目錄中即可。
    
    2、配置項(xiàng):打開根目錄下的config.php,修改定義常量WECHAT_APPID,WECHAT_APPSECRET,WECHAT_URL。其中前兩項(xiàng)可以在微信公眾號官網(wǎng)的開發(fā)者頁面中找到,而WECHAT_URL是你微信項(xiàng)目的URL,以http://開頭
    
    3、本框架的唯一入口為根目錄下的wechat.php
    
    4、首次使用時(shí),請打開根目錄下的wechat.php,注釋掉21行,并且打開注釋第24行。
    
    5、在微信開發(fā)者-填寫服務(wù)器配置頁面,填寫URL為http://www.lanecn.com/wechat.php,保證該URL可以通過80端口正常訪問(微信服務(wù)器目前只支持80端口),并且將Token填寫為config.php中的WECHAT_TOKEN常量的內(nèi)容(可以修改)。
    
    6、微信服務(wù)器在第4步驗(yàn)證通過后,反向操作第4步,即注釋掉第24行,打開注釋第21行。至此,安裝配置完成。

    初出茅廬:

    1、給你的微信公眾號發(fā)送一條文本消息,比如hello world或者其他什么的。這個(gè)時(shí)候你應(yīng)該會(huì)收到一條“收到文本”的服務(wù)器反饋的被動(dòng)響應(yīng)的消息。
    
    2、這個(gè)時(shí)候你需要先為自己鼓掌。

    流程分析:

    1、我們給微信服務(wù)器發(fā)送了一條“hello world”的文本消息。
    
    2、微信服務(wù)器收到我們的消息后,查找該公眾賬號所配置的服務(wù)器信息中的URL(如何安裝部分 - 第5步)。
    
    3、微信服務(wù)器向第二步獲取的URL發(fā)送請求,參數(shù)是微信服務(wù)器自己拼接過的XML格式。
    
    4、根目錄下的wechat.php,引入了我們的配置文件和所需的類后,進(jìn)入了類WeChat的方法run()。該類位于core/wechat.lib.php。微信的XML數(shù)據(jù)此時(shí)已經(jīng)被解析為數(shù)組,變量名為$request。
    
    5、然后,我們進(jìn)入了類WechatRequest的方法switchType(),根據(jù)不同的消息類型,給予不同的響應(yīng)。比如用戶發(fā)送文本消息和關(guān)注事件,給出的返回應(yīng)該是不同的。當(dāng)然,你要給出同樣的提示也不能說是錯(cuò)的。
    
    6、在第5步中的方法中,是一個(gè)switch,根據(jù)消息類型(此時(shí)是文本類型,微信服務(wù)器給我的是text)選擇了一個(gè)處理文本消息的方法,類WechatRequest中的方法text()。該方法的功能是發(fā)送文本消息,文本內(nèi)容是“收到文本”。
    
    7、此時(shí),我們r(jià)eturn了一個(gè)數(shù)據(jù)返回給了上層調(diào)用,層層return,就到了我們根目錄的下的唯一入口文件wechat.php,此時(shí)我們返回的數(shù)據(jù)被echo出來了。
    
    8、微信服務(wù)器拿到了輸出的數(shù)據(jù),微信服務(wù)器進(jìn)行分析和處理,將文本發(fā)送給了用戶的微信客戶端。我們就在手機(jī)上看到了微信輸出的“收到文本”。
    
    9、流程結(jié)束,這就是發(fā)送“hello world”,然后返回給用戶“收到文本”。

    牛刀小試:

    1、打開core/wechatrequest.php文件,講方法text()中的變量修改為$content = '收到文本消息'.$request['content'];
    
    2、保存并且上傳到你的服務(wù)器。
    
    3、在微信中打開你的公眾號,輸入文本消息“hello world”。見證奇跡的時(shí)刻到了。這個(gè)時(shí)候你的手機(jī)微信客戶端中現(xiàn)實(shí)的是“收到文本消息hello world”。

    函數(shù)詳解:

    一、被動(dòng)給用戶發(fā)送消息。
    
        1、類簡介:用戶輸入文本、圖片、語音、音樂、視頻等消息,以及關(guān)注、取消關(guān)注,上報(bào)地理位置等事件后,服務(wù)器被動(dòng)給出應(yīng)答。
    
        2、使用命名空間:use LaneWeChat\Core\ResponsePassive;
    
        3、參數(shù):  $fromusername = "誰發(fā)給你的?(用戶的openId)"  在變量$request['fromusername']中
    
                 $tousername = "你的公眾號Id";                 在變量$require['tousername']中
    
                 $mediaId = "通過上傳多媒體文件,得到的id。";
    
        4、發(fā)送文本
    
                ResponsePassive::text($fromusername, $tousername, '文本消息內(nèi)容');
    
        5、發(fā)送圖片
    
                ResponsePassive::image($fromusername, $tousername, $mediaId);
    
        6、發(fā)送語音
    
                ResponsePassive::voice($fromusername, $tousername, $mediaId);
    
        7、發(fā)送視頻
    
                ResponsePassive::video($fromusername, $tousername, $mediaId, '視頻標(biāo)題', '視頻描述');
    
        8、發(fā)送音樂
    
                ResponsePassive::music($fromusername, $tousername, '音樂標(biāo)題', '音樂描述', '音樂鏈接', '高質(zhì)量音樂鏈接,WIFI環(huán)境優(yōu)先使用該鏈接播放音樂', '縮略圖的媒體id,通過上傳多媒體文件,得到的id');
    
        9、發(fā)送圖文
    
            1)創(chuàng)建圖文消息內(nèi)容
    
                $tuwenList = array();
    
                $tuwenList[] = array('title'=>'標(biāo)題1', 'description'=>'描述1', 'pic_url'=>'圖片URL1', 'url'=>'點(diǎn)擊跳轉(zhuǎn)URL1');
    
                $tuwenList[] = array('title'=>'標(biāo)題2', 'description'=>'描述2', 'pic_url'=>'圖片URL2', 'url'=>'點(diǎn)擊跳轉(zhuǎn)URL2');
    
            2)構(gòu)建圖文消息格式
    
                $itemList = array();
    
                foreach($tuwenList as $tuwen){
    
                    $itemList[] = ResponsePassive::newsItem($tuwen['title'], $tuwen['description'], $tuwen['pic_url'], $tuwen['url']);
    
                }
    
            3)發(fā)送圖文消息
    
                ResponsePassive::news($fromusername, $tousername, $itemList);
    
    
    
    
    二、AccessToken授權(quán)。
    
        1、類簡介:除了被動(dòng)相應(yīng)用戶之外,在主動(dòng)給用戶發(fā)送消息,用戶組管理等高級操作,是需要AccessToken授權(quán)的,我們調(diào)用一個(gè)URL給微信服務(wù)器,微信服務(wù)器會(huì)返回給我們一個(gè)散列字符串,在高級操作的時(shí)候需要將此串以參數(shù)的形式發(fā)送。散列字符串10分鐘內(nèi)有效,過期需要重新獲取,獲取新的后之前的全部失效。
    
        2、使用命名空間:use LaneWeChat\Core\AccessToken;
    
        3、參數(shù):無
    
        4、獲取AccessToken
    
            AccessToken::getAccessToken(); 該調(diào)用會(huì)返回微信服務(wù)器散列后的AccessToken字符串。
    
        5、溫馨提示
    
            如果暫且用不到此功能,請?zhí)^。最后來看這里!
    
        6、功能補(bǔ)充
    
            有一個(gè)地方需要用戶自行完善,根據(jù)介紹我們已經(jīng)知道了,獲取AccessToken只有10分鐘的有效期,過期需要重新獲取。因此,我們需要存儲(chǔ)這個(gè)AccessToken。
    
            由于大家的存儲(chǔ)方式各不相同,有Mysql的,有Redis的,有MongoDB的,還有Session的。所以這里我講存儲(chǔ)和讀取給留空了。
    
            流程:AccessToken類,public方法只有一個(gè),就是getAccessToken()。這個(gè)方法會(huì)調(diào)用一個(gè)私有方法_checkAccessToken()來檢測AccessToken是否存在并且是否過期,如果不存在或過期,則調(diào)用私有方法_getAccessToken()
    
            完善步驟:
    
            1)、打開core/accesstoken.lib.php文件。
    
            2)、私有方法_getAccessToken()的倒數(shù)第二行(return是倒數(shù)第一行),在這個(gè)地方,請講變量$accessTokenJson存儲(chǔ)起來,變量$accessTokenJson是一個(gè)字符串。
    
            3)、私有方法_checkAccessToken()的第一行就是讀取操作(有一行偽代碼$accessToken = YourDatabase::get('access_token');),將剛才第二步的存儲(chǔ)的東西給讀出來,并且賦值給$accessToken。
    
            4)、在第二步的存儲(chǔ),第三部的讀取的時(shí)候,請不要修改數(shù)據(jù),僅僅完善一個(gè)讀和存的操作就可以了。
    
    
    
    
    三、主動(dòng)給用戶發(fā)送消息。
    
        1、類簡介:用戶輸入文本、圖片、語音、音樂、視頻等消息,以及關(guān)注、取消關(guān)注,上報(bào)地理位置等事件后,服務(wù)器被動(dòng)給出應(yīng)答。
    
        2、使用命名空間:use LaneWeChat\Core\ResponsePassive;
    
        3、參數(shù)  $tousername = "你的公眾號Id";                 在變量$require['tousername']中
    
                $mediaId = "通過上傳多媒體文件,得到的id。";
    
        4、發(fā)送文本內(nèi)容
    
        ResponseInitiative::text($tousername, '文本消息內(nèi)容');
    
        5、發(fā)送圖片
    
        ResponseInitiative::image($tousername, $mediaId);
    
        6、發(fā)送語音
    
        ResponseInitiative::voice($tousername, $mediaId);
    
        7、發(fā)送視頻
    
        ResponseInitiative::video($tousername, $mediaId, '視頻描述', '視頻標(biāo)題');
    
        8、發(fā)送地理位置
    
        ResponseInitiative::music($tousername, '音樂標(biāo)題', '音樂描述', '音樂鏈接', '高質(zhì)量音樂鏈接,WIFI環(huán)境優(yōu)先使用該鏈接播放音樂', '縮略圖的媒體id,通過上傳多媒體文件,得到的id');
    
        9、發(fā)送圖文消息
    
            1)創(chuàng)建圖文消息內(nèi)容
    
                $tuwenList = array();
    
                $tuwenList[] = array('title'=>'標(biāo)題1', 'description'=>'描述1', 'pic_url'=>'圖片URL1', 'url'=>'點(diǎn)擊跳轉(zhuǎn)URL1');
    
                $tuwenList[] = array('title'=>'標(biāo)題2', 'description'=>'描述2', 'pic_url'=>'圖片URL2', 'url'=>'點(diǎn)擊跳轉(zhuǎn)URL2');
    
            2)構(gòu)建圖文消息格式
    
                $itemList = array();
    
                foreach($tuwenList as $tuwen){
    
                    $itemList[] = ResponseInitiative::newsItem($tuwen['title'], $tuwen['description'], $tuwen['pic_url'], $tuwen['url']);
    
                }
    
            3)發(fā)送圖文消息
    
                ResponseInitiative::news($tousername, $itemList);
    
    
    
    
    四、用戶及用戶組管理。
    
        1、類簡介:獲取粉絲列表,創(chuàng)建\修改用戶組,講用戶添加\移除到用戶組。
    
        2、使用命名空間:use LaneWeChat\Core\UserManage;
    
        3、參數(shù)  $openId = '用戶和微信公眾號的唯一ID';           在變量$require['openid']中
    
                $mediaId = "通過上傳多媒體文件,得到的id。";
    
                $groupId = '分組ID';                         在添加新分組、獲取分組列表的時(shí)候可以得到
    
        4、分組管理 - 創(chuàng)建分組
    
            UserManage::createGroup('分組名');
    
        5、分組管理 - //獲取分組列表
    
            UserManage::getGroupList();
    
        6、分組管理 - 查詢用戶所在分組
    
            UserManage::getGroupByOpenId($openId);
    
        7、分組管理 - 修改分組名
    
            UserManage::editGroupName($groupId, '新的組名');
    
        8、分組管理 - 移動(dòng)用戶分組
    
            UserManage::editUserGroup($openId, $groupId);
    
        9、用戶管理 - 獲取用戶基本信息
    
            UserManage::getUserInfo($openId);
    
        10、用戶管理 - 獲取關(guān)注者列表
    
            UserManage::getFansList($next_openId='');
    
        11、用戶管理 - 獲取網(wǎng)絡(luò)狀態(tài)
    
            UserManage::getNetworkState();
    
    
    
    
    五、網(wǎng)頁授權(quán)。
    
        1、類簡介:在網(wǎng)頁中獲取來訪用戶的數(shù)據(jù)。
    
        2、使用命名空間:use LaneWeChat\Core\WeChatOAuth;
    
        3、參數(shù)  $openId = '用戶和微信公眾號的唯一ID';           在變量$require['openid']中
    
                $mediaId = "通過上傳多媒體文件,得到的id。";
    
                $groupId = '分組ID';                         在添加新分組、獲取分組列表的時(shí)候可以得到
    
        4、獲取CODE。
    
            參數(shù):$scope:snsapi_base不彈出授權(quán)頁面,只能獲得OpenId;snsapi_userinfo彈出授權(quán)頁面,可以獲得所有信息
    
            參數(shù):$redirect_uri:將會(huì)跳轉(zhuǎn)到redirect_uri/?code=CODE&state=STATE 通過GET方式獲取code和state。獲取CODE時(shí),發(fā)送請求和參數(shù)給微信服務(wù)器,微信服務(wù)器會(huì)處理后將跳轉(zhuǎn)到本參數(shù)指定的URL頁面
    
            WeChatOAuth::getCode($redirect_uri, $state=1, $scope='snsapi_base');
    
        5、通過code換取網(wǎng)頁授權(quán)access_token(access_token網(wǎng)頁版)。首先請注意,這里通過code換取的網(wǎng)頁授權(quán)access_token,與基礎(chǔ)支持中的access_token不同。公眾號可通過下述接口來獲取網(wǎng)頁授權(quán)access_token。如果網(wǎng)頁授權(quán)的作用域?yàn)閟nsapi_base,則本步驟中獲取到網(wǎng)頁授權(quán)access_token的同時(shí),也獲取到了openid,snsapi_base式的網(wǎng)頁授權(quán)流程即到此為止。
    
            參數(shù):$code getCode()獲取的code參數(shù)。$code = $_GET['code'];
    
            WeChatOAuth::getAccessTokenAndOpenId($code);
    
    
    
    
    六、多媒體上傳下載
    
        1、類簡介:在網(wǎng)頁中獲取來訪用戶的數(shù)據(jù)。上傳的多媒體文件有格式和大小限制,如下:
    
            * 圖片(image): 1M,支持JPG格式
    
            * 語音(voice):2M,播放長度不超過60s,支持AMR\MP3格式
    
            * 視頻(video):10MB,支持MP4格式
    
            * 縮略圖(thumb):64KB,支持JPG格式
    
            * 媒體文件在后臺保存時(shí)間為3天,即3天后media_id失效
    
        2、使用命名空間:use LaneWeChat\Core\Media;
    
        3、參數(shù)  $filename 上傳的文件的絕對路徑
    
                $type 媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb)
    
                $mediaId = "通過上傳多媒體文件,得到的id。";
    
                $groupId = '分組ID';                         在添加新分組、獲取分組列表的時(shí)候可以得到
    
        4、上傳:上傳后,微信服務(wù)器會(huì)返回一個(gè)mediaId。
    
            Media::upload($filename, $type);
    
        5、下載:根據(jù)mediaId下載一個(gè)多媒體文件。
    
            Media::download($mediaId);
    
    
    
    七、自定義菜單
    
        1、類簡介:添加自定義菜單。最多可以有三個(gè)一級菜單,每個(gè)一級菜單最多可以有五個(gè)菜單。一級菜單最多4個(gè)漢字,二級菜單最多7個(gè)漢字。創(chuàng)建自定義菜單后,由于微信客戶端緩存,需要24小時(shí)微信客戶端才會(huì)展現(xiàn)出來。建議測試時(shí)可以嘗試取消關(guān)注公眾賬號后再次關(guān)注,則可以看到創(chuàng)建后的效果。
    
            摘自微信官方網(wǎng)站:目前自定義菜單接口可實(shí)現(xiàn)兩種類型按鈕,如下:
    
            click:
    
                用戶點(diǎn)擊click類型按鈕后,微信服務(wù)器會(huì)通過消息接口推送消息類型為event的結(jié)構(gòu)給開發(fā)者,并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值與用戶進(jìn)行交互;
    
            view:
    
                用戶點(diǎn)擊view類型按鈕后,微信客戶端將會(huì)打開開發(fā)者在按鈕中填寫的url值   (即網(wǎng)頁鏈接),達(dá)到打開網(wǎng)頁的目的,建議與網(wǎng)頁授權(quán)獲取用戶基本信息接口結(jié)合,獲得用戶的登入個(gè)人信息。
    
            總結(jié)一下哦,就是微信的菜單分兩種,一種是view型,就是你設(shè)置一個(gè)網(wǎng)址,點(diǎn)了這個(gè)菜單之后就跳到你設(shè)置的網(wǎng)址去了。另一種就是click型,你設(shè)置一個(gè)key,然后用戶點(diǎn)擊的時(shí)候會(huì)通過本框架唯一入口wechat.php發(fā)送一個(gè)消息類型為event的請求,在wechatrequest.lib.php文件下的eventClick方法中可以使用。
    
        2、使用命名空間:use LaneWeChat\Core\Menu;
    
        3、設(shè)置菜單:是所有的菜單數(shù)據(jù)全部發(fā)送一次,可不是每新增一個(gè)只發(fā)一個(gè)菜單。
    
            Menu::setMenu($menuList);
    
            $menuLis 是菜單列表,結(jié)構(gòu)如下:
    
            $menuList = array(
    
                                array('id'=>'1', 'pid'=>'0', 'name'=>'頂級分類一', 'type'=>'', 'code'=>''),
    
                                array('id'=>'2', 'pid'=>'1', 'name'=>'分類一子分類一', 'type'=>'2', 'code'=>'lane_wechat_menu_1_1'),
    
                                array('id'=>'3', 'pid'=>'1', 'name'=>'分類一子分類二', 'type'=>'1', 'code'=>'http://www.lanecn.com'),
    
                                array('id'=>'4', 'pid'=>'0', 'name'=>'頂級分類二', 'type'=>'1', 'code'=>'http://www.php.net/'),
    
                                array('id'=>'5', 'pid'=>'0', 'name'=>'頂級分類三', 'type'=>'2', 'code'=>'lane_wechat_menu_3'),
    
                            );
    
            'id'是您的系統(tǒng)中對分類的唯一編號;
    
            'pid'是該分類的上級分類,頂級分類則填寫0;
    
            'name'是分類名稱;
    
            'type'是菜單類型,數(shù)字1或者2,1是view類型,2是click類型,如果該分類下有子分類請務(wù)必留空;
    
            'code'是view類型的URL或者click類型的自定義key,如果該分類下有子分類請務(wù)必留空。
    
        4、獲取微信菜單:獲取到的是已經(jīng)設(shè)置過的菜單列表,格式為Json,是微信服務(wù)器返回的原始數(shù)據(jù)。
    
            Menu::getMenu();
    
        5、刪除微信菜單:將會(huì)刪除設(shè)置過的所有菜單(一鍵清空)。
    
            Menu::delMenu();

    實(shí)例示范:

    1、通過網(wǎng)頁授權(quán)獲得用戶信息
    
        場景:用戶點(diǎn)擊了我的自定義菜單,或者我發(fā)送的文本消息中包含一個(gè)URL,用戶打開了我的微信公眾號的網(wǎng)頁版,我需要獲取用戶的信息。
    
        代碼:
    
        <?php
            use LaneWeChat\Core\WeChatOAuth;
            use LaneWeChat\Core\UserManage;
    
            //第一步,獲取CODE
            WeChatOAuth::getCode('http://www.lanecn.com/index.php', 1, 'snsapi_base');
            //此時(shí)頁面跳轉(zhuǎn)到了http://www.lanecn.com/index.php,code和state在GET參數(shù)中。
            $code = $_GET['code'];
            //第二步,獲取access_token網(wǎng)頁版
            $openId = WeChatOAuth::getAccessTokenAndOpenId($code);
            //第三步,獲取用戶信息
            $userInfo = UserManage::getUserInfo($openId['openid']);
        ?>


    瀏覽 22
    點(diǎn)贊
    評論
    收藏
    分享

    手機(jī)掃一掃分享

    編輯 分享
    舉報(bào)
    評論
    圖片
    表情
    推薦
    點(diǎn)贊
    評論
    收藏
    分享

    手機(jī)掃一掃分享

    編輯 分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    伊人在线免费视频 | 想操逼视频 | 亚洲无码在线免费观看视频 | 成年人在线激情电影 | 韩国二区18|