php微信開(kāi)發(fā)接入
微信,想必大家都不陌生,像支付寶一樣在悄悄的改變大家的生活方式。伴隨著這種新的生活方式,越來(lái)越多的微服務(wù)也開(kāi)始進(jìn)入我們的生活,我們可以使用微信查詢信用卡帳單、還款、支付,在最近的一次微信合作伙伴大會(huì)上,騰訊向公眾服務(wù)號(hào)開(kāi)放支付功能與九大高級(jí)接口,透過(guò)這些接口,開(kāi)發(fā)者可以實(shí)現(xiàn)使用利用微信搖控電視、冰箱、洗衣機(jī)甚至電飯煲,使用微信的微支付功能,還能方便地在線購(gòu)買電影票、手機(jī)充值、收看互聯(lián)網(wǎng)電視付費(fèi)節(jié)目等。
下面,就我個(gè)人的了解,簡(jiǎn)單講述一下微信開(kāi)發(fā)的第一步,如何與微信服務(wù)器對(duì)接。
想要涉足微信開(kāi)發(fā),第一步就是要申請(qǐng)一個(gè)微信公眾號(hào)。公眾號(hào)分為服務(wù)號(hào)和訂閱號(hào)。服務(wù)號(hào),故名思義,主要是對(duì)用戶提供服務(wù)的,一般是企業(yè)或是服務(wù)行業(yè)用的比較多,功能相對(duì)訂閱號(hào)要強(qiáng)大一些,可以自定義用戶菜單;但也有不方便的地方,就是服務(wù)號(hào)一個(gè)月只允許發(fā)送一條群消息。訂閱號(hào),主要是提供信息和資訊,一般是媒體用的比較多,功能相對(duì)服務(wù)號(hào)要弱一些,但可以每天發(fā)送一條群消息。以下的講述,都是以服務(wù)號(hào)為基礎(chǔ)。
微信公眾號(hào)申請(qǐng)好之后,我們還需要一個(gè)對(duì)外的WEB服務(wù)器,方便和微信服務(wù)器進(jìn)行數(shù)據(jù)交互。這一步我就不細(xì)講了,百度和新浪都提供這個(gè)服務(wù)。
登錄微信公眾平臺(tái),在左側(cè)的導(dǎo)航菜單中選擇“功能”--> “高級(jí)功能”, 微信為我們提供了兩種“編輯模式”和“開(kāi)發(fā)模式”,這兩種模式互斥,即如果開(kāi)啟了“編輯模式”,則需要將“開(kāi)發(fā)模式”關(guān)閉,反之亦然?!熬庉嬆J健庇址Q傻瓜模式,開(kāi)發(fā)者可以直接在平臺(tái)上定義菜單,設(shè)置自動(dòng)回復(fù)等功能。這里定義的菜單功能比較弱,用戶點(diǎn)擊自定義菜單后,只能夠回復(fù)信息或是打開(kāi)一個(gè)網(wǎng)頁(yè),如果需要根據(jù)用戶點(diǎn)擊的菜單做一些其他動(dòng)作,則需要使用到“開(kāi)發(fā)模式”。
使用”開(kāi)發(fā)模式“的前提是您必須申請(qǐng)成為開(kāi)發(fā)者。
第一步需要指定接收微信服務(wù)器數(shù)據(jù)的URL,同時(shí)還需要指定一個(gè)TOKEN(由開(kāi)發(fā)者任意填寫(xiě),用于生成簽名),用于接入時(shí)的驗(yàn)證。
第二步要驗(yàn)證您指定的URL的有效性,微信服務(wù)器會(huì)像您指定的URL發(fā)送一個(gè)GET請(qǐng)求,該請(qǐng)求攜帶四個(gè)參數(shù)。
開(kāi)發(fā)者通過(guò)檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn)。若確認(rèn)此次GET請(qǐng)求來(lái)自微信服務(wù)器,請(qǐng)?jiān)瓨臃祷豦chostr參數(shù)內(nèi)容,則接入生效,成為開(kāi)發(fā)者成功,否則接入失敗。
PHP檢驗(yàn)代碼如下。
<?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; } } } ?>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP與SQL語(yǔ)句寫(xiě)一句話木馬總結(jié)
在本篇文章里小編給大家整理的是關(guān)于PHP與SQL語(yǔ)句寫(xiě)一句話木馬的相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。2019-10-10PHP二維數(shù)組實(shí)現(xiàn)去除重復(fù)項(xiàng)的方法【保留各個(gè)鍵值】
這篇文章主要介紹了PHP二維數(shù)組實(shí)現(xiàn)去除重復(fù)項(xiàng)的方法,結(jié)合實(shí)例形式分析了php保留各個(gè)鍵值的情況下去除重復(fù)項(xiàng)的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12Ubuntu server 11.04安裝memcache及php使用memcache來(lái)存儲(chǔ)session的方法
這篇文章主要介紹了Ubuntu server 11.04安裝memcache及php使用memcache來(lái)存儲(chǔ)session的方法,涉及memcache服務(wù)器的安裝及php操作memcache存儲(chǔ)session的相關(guān)技巧,需要的朋友可以參考下2016-05-05php中獲取關(guān)鍵詞及所屬來(lái)源搜索引擎名稱的代碼
有時(shí)候我們需要知道用戶通過(guò)哪個(gè)搜索引擎,通過(guò)拿個(gè)關(guān)鍵詞訪問(wèn)我們頁(yè)面,當(dāng)然js也可以實(shí)現(xiàn),但這里介紹下php的實(shí)現(xiàn)代碼。2011-02-02PHP利用緩存處理用戶注冊(cè)時(shí)的郵箱驗(yàn)證,成功后用戶數(shù)據(jù)存入數(shù)據(jù)庫(kù)操作示例
這篇文章主要介紹了PHP利用緩存處理用戶注冊(cè)時(shí)的郵箱驗(yàn)證,成功后用戶數(shù)據(jù)存入數(shù)據(jù)庫(kù)操作,涉及PHP操作Memcache緩存驗(yàn)證登錄與數(shù)據(jù)庫(kù)寫(xiě)入相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12php時(shí)間計(jì)算相關(guān)問(wèn)題小結(jié)
這篇文章主要介紹了php時(shí)間計(jì)算相關(guān)問(wèn)題,結(jié)合實(shí)例形式總結(jié)分析了php關(guān)于時(shí)間與日期的常見(jiàn)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05關(guān)于Appserv無(wú)法打開(kāi)localhost問(wèn)題的解決方法
安裝了Appserv時(shí),無(wú)法打開(kāi)http://localhost或是http://127.0.0.1 下面的具體的解決方法,大家可以參考下。多注意看下端口占用問(wèn)題。2009-10-10