真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

本博文就月初剛上線的微信服務(wù)號(hào),圖文進(jìn)行總結(jié)分享給大家。

網(wǎng)站制作、建網(wǎng)站找專業(yè)網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián):定制網(wǎng)站、模板網(wǎng)站、仿站、成都小程序開發(fā)、軟件開發(fā)、成都App制作等。做網(wǎng)站價(jià)格咨詢成都創(chuàng)新互聯(lián):服務(wù)完善、十多年建站、值得信賴!網(wǎng)站制作電話:18980820575

去年年底,我所在的團(tuán)隊(duì)討論要開發(fā)微信號(hào),話題由此拉開:

原來(lái)有一個(gè)3年前注冊(cè)的微信號(hào),但是后臺(tái)操作無(wú)法從“訂閱號(hào)”變更為“服務(wù)號(hào)”,隨即找騰訊的客服溝通,客服還算是熱情,mm耐心的告之系統(tǒng)已經(jīng)更新,對(duì)于無(wú)法升級(jí)的微信號(hào),只能重新注冊(cè)----“*#*(*¥)¥K30#$e&#)”,一陣抓狂后,只能重新注冊(cè)了,下面就開始從注冊(cè)到內(nèi)部需求討論,到開發(fā)的圖文總結(jié)。

Step1:微信注冊(cè)

在微信公眾號(hào)官網(wǎng):https://mp.weixin.qq.com,點(diǎn)擊注冊(cè)

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

如上圖所示,微信號(hào)由郵箱注冊(cè),每個(gè)郵箱僅能申請(qǐng)一種帳號(hào):服務(wù)號(hào)、訂閱號(hào)或企業(yè)號(hào)。

      • 基本信息

      • 郵箱激活

      • 選擇類型

      • 信息登記

      • 公眾號(hào)信息

這里按照說(shuō)明輸入公司信息即可,本次我們選擇的是認(rèn)證服務(wù)號(hào)的選項(xiàng):

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

為了認(rèn)證服務(wù)號(hào),需要支付300元/年,這個(gè)步驟稍微麻煩一些:財(cái)務(wù)打款、等待7個(gè)工作日、郵遞發(fā)票等。

需要注意的是,微信的認(rèn)證不是騰訊官方,是其委托方的第三方,這個(gè)剛開始的時(shí)候還比較差異。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 

在完成后的認(rèn)證后,認(rèn)證信息如下(略過(guò)中間掃描公司的營(yíng)業(yè)執(zhí)照、掃描蓋公章的認(rèn)證協(xié)議等細(xì)節(jié)):

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

認(rèn)證后的微信(帶金色對(duì)鉤的是本次開發(fā)的微信):

           PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 

Step2:微信文檔&API學(xué)習(xí)

微信開發(fā)和學(xué)習(xí)使用ComponentOne控件一樣,需要做第一件事件是看微信官方的文檔、API、demo樣例代碼,這樣能極大減少走彎路的風(fēng)險(xiǎn)。

備注:原計(jì)劃看幾本熱銷的微信開發(fā)書籍,后來(lái)因?yàn)闀r(shí)間原因放棄了。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

登陸微信后臺(tái),點(diǎn)擊左側(cè)的“開發(fā)者中心”,右側(cè)出現(xiàn)的“開發(fā)者文檔”、“在線接口調(diào)試工具”即是微信官方提供的文檔和API利器,在開發(fā)過(guò)程中,會(huì)反復(fù)、多次使用,這2個(gè)是非常重要的資料。

在公眾號(hào)“開發(fā)者中心”中,把AppID和AppSecret記下來(lái),后面會(huì)多次用到。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

微信的官方文檔,首先從上往下通讀一遍:

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

在文檔的開始,微信官方就提供了PHP示例代碼,下載地址。 且其明確的告之,微信公眾號(hào)接口只支持80接口.

官方文檔寫的非常細(xì),如獲取access token是基于HTTP請(qǐng)求,用的是GET方式,其他的文檔請(qǐng)直接參閱文檔

access_token是公眾號(hào)的全局唯一票據(jù),公眾號(hào)調(diào)用各接口時(shí)都需使用access_token。開發(fā)者需要進(jìn)行妥善保存。access_token的存儲(chǔ)至少要保留512個(gè)字符空間。access_token的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。

http請(qǐng)求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 
備注:access_token的有效時(shí)間是7200s,既需要自行做一個(gè)緩存,2小時(shí)刷新一次access_token; 我在這里用的是文件的緩存方式,添加了時(shí)間戳。
 

Step3:開發(fā)環(huán)境搭建

這節(jié),我們著手搭建環(huán)境。

首先選擇http://git.oschina.net 搭建源碼托管環(huán)境,OSC提供了免費(fèi)的私有項(xiàng)目,配合使用TortoiseGit-1.8.11.0-64bit,使得搭建源碼托管環(huán)境非常簡(jiǎn)單。另外,其在國(guó)內(nèi)訪問Git速度超快(贊一個(gè)!)

接著安裝軟件,配置電腦開發(fā)環(huán)境:

    • Windows 8.1 64位 中文版

    • JetBrains PhpStorm 8.0.2

    • SQL Server 2008

    • PHP 5

為了方便測(cè)試,和公司網(wǎng)管溝通,把微信的***.gcpowertools.com.cn/ 80端口映射到我的局域網(wǎng)電腦。事后證明,這種本地調(diào)試方法非常高效,極大了提高了開發(fā)、調(diào)試效率。最后,為了方便調(diào)試微信數(shù)據(jù),需要寫log進(jìn)行日志呈現(xiàn),這里我使用的是讀寫文件的方式。

function writeLogBegin($msg = "begin log..............")
{
    $logFile = date('Y-m-d') . '.txt';
    $msg = date('Y-m-d H:i:s') . ' >>> ' . $msg . "\r\n";
    file_put_contents("c:\\log.txt", $msg);
}

 

Step4:微信開發(fā)

首先,結(jié)合業(yè)務(wù)特點(diǎn),規(guī)劃微信底部的自定義菜單。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

小技巧:自定義菜單不用寫代碼,用微信官方自帶的調(diào)試頁(yè)面即可完成。

 

規(guī)劃好自定義菜單后,POST JSON到微信服務(wù)器,可直接使用微信公眾平臺(tái)接口調(diào)試工具。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

保存生成的access_token, 類似如下的文本:

vU2rq8nzdXZWmcS3jO1OAZzRL5dnm3OIlsPF8ZCKHkTGfrG8f87QpwYa4mBpkTvnuy0pQJsfyq_L5xLIqPSoIBIqdsVAaKOuEgBrPpQ4

 

接著選擇“自定義菜單”,輸入剛才保存的access_token,輸入如下的JSON字符串:

{
      "button":[    
      {    
           "name":"學(xué)習(xí)中心",    
           "sub_button":[    
            {    
               "type":"click",    
               "name":"聯(lián)系葡萄城",    
               "key":"101"    
            }]

       },    
       {    
           "name":"我的服務(wù)",    
           "sub_button":[    
            {    
                "type": "view",    
                "name": "最新動(dòng)態(tài)",    
                "url": "https://open.weixin.qq.com/connect/oauth3/authorize?appid=wx9665cf3fcdaee2f1&redirect_uri=http://www.gcpowertools.com.cn&response_type=code&scope=snsapi_base&state=118#wechat_redirect"    
            },    
            {
                "type": "view",    
                "name":"最新版本",    
                "url": "https://open.weixin.qq.com/connect/oauth3/authorize?appid=wx9665cf3fcdaee2f1&redirect_uri=http://www.gcpowertools.com.cn&response_type=code&scope=snsapi_base&state=118#wechat_redirect"    
            },    
            {    
                "type":"click",    
                "name":"金牌服務(wù)查詢",    
                "key":"102"    
            },    
            {    
                "type":"click",    
                "name":"金牌服務(wù)條款",    
                "key":"103"    
            }

            ]    
       },    
       {    
           "name":"Gcdn社區(qū)",    
           "sub_button":[    
           {    
               "type":"click",    
               "name":"每日簽到",    
               "key":"104"    
            },    
            {    
               "type":"click",    
               "name":"信息查詢",    
               "key":"105"    
            },    
            {    
               "type":"click",    
               "name":"我的帖子",    
               "key":"106"    
            },    
            {    
               "type":"click",    
               "name":"熱門問答",    
               "key":"107"    
            },    
            {

                "type":"view",    
                "name":"禮品兌換",    
                "url":"https://open.weixin.qq.com/connect/oauth3/authorize?appid=wx9665cf3fcdaee2f1&redirect_uri=http://www.gcpowertools.com.cn&response_type=code&scope=snsapi_base&state=118#wechat_redirect"    
            }]    
       }]    
}

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 

備注:創(chuàng)建自定義菜單后,由于微信客戶端緩存,需要24小時(shí)微信客戶端才會(huì)展現(xiàn)出來(lái)。建議測(cè)試時(shí)可以嘗試取消關(guān)注公眾賬號(hào)后再次關(guān)注,則可以看到創(chuàng)建后的效果。

接著,我們進(jìn)行核心的功能開發(fā)。

微信服務(wù)號(hào)的核心圍繞GCDN社區(qū),故“GCDN社區(qū)”子菜單有5個(gè)二級(jí)菜單,其中每日簽到、信息查詢、我的帖子、禮品兌換功能需要首先綁定自己的GCDN賬號(hào)GCDN賬號(hào)。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

依據(jù)上面的邏輯,綁定GCDN賬號(hào)是前提環(huán)節(jié),故需要開發(fā)綁定功能。 綁定功能,做了一個(gè)頁(yè)面,通過(guò)a標(biāo)簽跳轉(zhuǎn),用戶在輸入用戶名、密碼后進(jìn)行GCDN鑒權(quán)驗(yàn)證,驗(yàn)證通過(guò)存儲(chǔ)在表:包含GCDN ID、微信的OpenID,既完成賬號(hào)綁定。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

后面的多個(gè)功能,通過(guò)這個(gè)表,可從微信的OpenID獲得GCDN ID,繼而可以使用GCDN論壇中的個(gè)人信息。

 

每日簽到功能

打開論壇頁(yè)面,在底部可看到目前GCDN使用的引擎較早,是Discuz!NT3.6.711版本,故X3.1版本中時(shí)尚的簽到功能是沒有的。針對(duì)這個(gè)遺憾,本次微信開發(fā)做了彌補(bǔ):用戶可通過(guò)微信的簽到完成這個(gè)功能。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 

GCDN回帖微信通知

這是另外一個(gè)特色功能:無(wú)需操作,只需要綁定GCDN賬號(hào),當(dāng)你在GCDN的發(fā)帖有人回復(fù)時(shí),會(huì)自動(dòng)收到微信通知。

這個(gè)功能的開發(fā),主要是為了還GCDNer的一個(gè)期待:在《2013年葡萄城控件用戶滿意度調(diào)查》,論壇用戶對(duì)此類功能呼聲很高,“謝謝你們的努力和盡職盡責(zé),我希望GCDN回帖及時(shí)些,最好有及時(shí)的短信通知功能,省的我時(shí)不時(shí)的刷新GCDN頁(yè)面,催促你們!”--某GCDN用戶。

 

實(shí)現(xiàn)思路如下圖所示:

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 

微信通知用戶,剛開始想的是文本通知,結(jié)果發(fā)現(xiàn)微信公眾號(hào)的政策:如果用戶未在24小時(shí)內(nèi)主動(dòng)和微信互動(dòng),則無(wú)法用文本通知用戶。想到另外一個(gè)變通的辦法,各大銀行的余額動(dòng)態(tài)通知功能。接著仔細(xì)找微信提供的功能,原來(lái)這種功能是“微信模板消息”。

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

 

這段文檔關(guān)于微信的模板消息寫的很詳細(xì):

為了保證用戶不受到騷擾,在開發(fā)者出現(xiàn)需要主動(dòng)提醒、通知用戶時(shí),才允許開發(fā)者在公眾平臺(tái)網(wǎng)站中模板消息庫(kù)中選擇模板,選擇后獲得模板ID,再根據(jù)模板ID向用戶主動(dòng)推送提醒、通知消息。

約花了半天時(shí)間,開發(fā)出的功能效果看起來(lái)還不錯(cuò)(用戶是否在24小時(shí)內(nèi)主動(dòng)聯(lián)系,均可發(fā)送模板消息),截圖如下:

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

如想配置這個(gè)功能,通過(guò)回復(fù)文字指令。

    • 回復(fù)"取消提醒": 自動(dòng)關(guān)閉微信通知提醒

    • 回復(fù)"開通提醒":自動(dòng)開通微信通知提醒(需要你綁定GCDN賬號(hào))

 

上面的開發(fā)過(guò)程,用到的PHP的 curl 實(shí)現(xiàn)HTTP GET、POST請(qǐng)求的源碼:

/**
 * @param $url
 * @param null $data
 * @return mixed
 */
function https_request($url, $data = null)
{
    // 模擬提交數(shù)據(jù)函數(shù)
    $curl = curl_init(); // 啟動(dòng)一個(gè)CURL會(huì)話
    curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對(duì)認(rèn)證證書來(lái)源的檢查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動(dòng)跳轉(zhuǎn)
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動(dòng)設(shè)置Referer
    if (!empty($data)) {
        curl_setopt($curl, CURLOPT_POST, 1); // 發(fā)送一個(gè)常規(guī)的Post請(qǐng)求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數(shù)據(jù)包
    }
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設(shè)置超時(shí)限制防止死循環(huán)
    curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回

   

    $tmpInfo = curl_exec($curl); // 執(zhí)行操作
    if (curl_errno($curl)) {
        echo 'Errno' . curl_error($curl);//捕抓異常
    }
    curl_close($curl); // 關(guān)閉CURL會(huì)話
    return $tmpInfo; // 返回?cái)?shù)據(jù)
}

 

雷區(qū):如果你所在電腦有代理,務(wù)必添加如下代碼:

   //使用網(wǎng)絡(luò)代理begin
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_PROXY, '192.168.0.1');  //替換代理地址
    curl_setopt($curl, CURLOPT_PROXYPORT, '880');      //替換代理端口
    curl_setopt($curl, CURLOPT_PROXYTYPE, 'HTTP');
    curl_setopt($curl, CURLOPT_PROXYUSERPWD, 'grapecity/r:r'); //替換代理用戶名
    //使用網(wǎng)絡(luò)代理end
 

Step5:開發(fā)總結(jié)

  • 近2個(gè)月的開發(fā)時(shí)間,投入了約1.5人,粗略估算有3個(gè)人月開發(fā)投入。

  • 少數(shù)的幾次非控件業(yè)務(wù)的研發(fā),主要為了方便GCDN社區(qū)用戶的使用,橋接微信、GCDN。

  • 選擇使用PHP腳本語(yǔ)言不錯(cuò),微信官方用PHP作為默認(rèn)微信開發(fā)腳本,另外PHP開發(fā)微信的博客非常多。

  • 完整項(xiàng)目經(jīng)驗(yàn)很重要:“坑才是大愛!”

坑的定義:有時(shí)候沒有問題,有時(shí)候有問題。100%有問題的,不叫坑,叫bug。

  • Git利器: 協(xié)作開發(fā),牛!

  • include_onece 路徑錯(cuò)誤這個(gè)坑,PHPStorm提供了足夠的智能感知,要重視。

  • include_onece 路徑用單引號(hào),不要用雙引號(hào)

  • 團(tuán)隊(duì)協(xié)力:人心齊、泰山移。微信功能的迭代,是一點(diǎn)一點(diǎn)溝通出來(lái)的。

 

小伙伴們,有微信的不妨掃一掃,看看大家還有啥需求,我們接著開發(fā)、寫博客吧:

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解

關(guān)注微信綁定GCDN賬號(hào),有GCDN勛章喲!

PHP 開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解


分享名稱:PHP開發(fā)社區(qū)微信服務(wù)號(hào)實(shí)戰(zhàn)圖解
瀏覽路徑:http://weahome.cn/article/jjpjpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部