本文不提供整套系統(tǒng)源碼,只會(huì)開放部分源碼,講訴開發(fā)的經(jīng)歷、思路、問題解答,希望對新手有幫助,至于高手和大神一下而過或留下寶貴意見在此謝過。
廢話不多說了開始進(jìn)入正題。
基礎(chǔ)篇
php當(dāng)前主流WEB開發(fā)語言毋庸置疑不用多說。微信接口主要用到微信授權(quán)登錄接口、微信JSSDK分享接口、微信支付接口,對于微信的一系列接口必須要牢騷一下到處是坑啊。分銷系統(tǒng)是一種營銷模式以后會(huì)解釋。首先說一下第一步微信登錄(oauth3第三方授權(quán)接口),個(gè)人認(rèn)為比較重要的一部,優(yōu)點(diǎn)用戶體驗(yàn)高、安全性高、為后邊做分銷系統(tǒng)打下便利的基礎(chǔ),缺點(diǎn)只能在微信內(nèi)置瀏覽器中訪問對于微信外其他方式宣傳推廣不便利,只能用二維碼的方式(生成鏈接形式的二維碼網(wǎng)上第三方工具很多,也可以用程序來實(shí)現(xiàn),有興趣可以留言)。
首先看一下傳說中的微信API接口文檔吧,官網(wǎng)文檔地址http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
用該接口必須需要一個(gè)認(rèn)證的服務(wù)號、沒有的情況下可以申請一個(gè)測試賬號體驗(yàn)一下但不能宣傳推廣
關(guān)于網(wǎng)頁授權(quán)回調(diào)域名的說明
文檔寫的比較清楚,在不用第三方平臺(tái)的情況下,需要配置一下項(xiàng)目需要獲取微信用戶信息的路徑,一二.....級域名都可以。這個(gè)比較明朗
再往下看第一遍沒看懂,第二遍沒看懂。。。。。。項(xiàng)目是一年前開始開發(fā)的當(dāng)時(shí)的文檔比現(xiàn)在還簡陋而且網(wǎng)上可參考的資料很少官方?jīng)]有實(shí)例,還好最后從一篇文章找到蛛絲馬跡算是做出來了,牢騷一下
其他說明
先介紹幾個(gè)參數(shù)appid和appsecret在微信公眾平臺(tái)中可以找到很多接口的調(diào)用都會(huì)用到這兩個(gè)參數(shù)。
最重要的一個(gè)參數(shù)也是調(diào)用授權(quán)接口的目的,openid,它是一個(gè)微信號對應(yīng)該公眾平臺(tái)的唯一標(biāo)示,獲取到它就可以認(rèn)為用戶已經(jīng)微信登錄了,后邊一切業(yè)務(wù)流程和數(shù)據(jù)庫記錄都是圍繞它來建立的。
下面說說如何獲取openid和用戶基本信息比如頭像昵稱城市性別等,這是一個(gè)比較蛋疼的過程,這么多步驟玩我們呢是吧?給你找個(gè)理由是為了安全性考慮吧。我又發(fā)牢騷了不好意思。
分三步
1獲取code,啥是code???不知道反正獲取到它才能進(jìn)行下一步
接口地址:https://open.weixin.qq.com/connect/oauth3/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redire
appid剛才提高過在公眾平臺(tái)里可以找到,redirect_uri是重點(diǎn)它是再用戶通過上述的接口地址發(fā)出請求到微信的服務(wù)器,微信服務(wù)器通過GET方式傳遞一個(gè)參數(shù)code返回到redirect_uri,用$_GET方式接受一下就可以。scope也是個(gè)比較重要的參數(shù)他有兩種類型snsapi_base、snsapi_userinfo,說說區(qū)別如果只想實(shí)現(xiàn)微信登錄也就是只需要openid那么使用snsapi_base,它的好處是用戶在訪問時(shí)并不知曉你抓取了他的openid。使用snsapi_userinfo除了可以抓取openid以外,還能抓取到更多很多微信用戶信息,現(xiàn)在很多微信應(yīng)用都需要頭像和昵稱那么直能使用snsapi_userinfo,缺點(diǎn)為會(huì)首先彈出微信授權(quán)是否允許的頁面需經(jīng)過用戶同意才可以進(jìn)行下一步的操作
如圖:
2.獲取openid和access_token
通過剛才獲取到的code以及appid和appsecret
接口:https://api.weixin.qq.com/sns/oauth3/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
返回的是json格式的數(shù)據(jù)
3獲取頭像昵稱等...
通過openid和access_token
接口:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
返回的是json格式的數(shù)據(jù)
參數(shù)lang不寫的時(shí)候默認(rèn)返回英文數(shù)據(jù)
實(shí)例代碼片段
a.php
$url='http://www.xxx.com/b.php';
$url=urlencode($url);
$;
$jsonstr= file_get_contents($url);
$jsonstr = json_decode($jsonstr,true);
$access_token= $jsonstr['access_token'];
$openid=$jsonstr['openid'];
$userurl='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid;
$userinfo=file_get_contents($userurl);
$userinfo = json_decode($userinfo,true);
好吧勉強(qiáng)算是實(shí)現(xiàn)了。。。。。。。。。。但是經(jīng)過一段時(shí)間的運(yùn)行抓取信息并不穩(wěn)定會(huì)出現(xiàn)一部分用戶沒有獲取到頭像和昵稱琢磨了很久不知道問題出現(xiàn)在哪里,在哪里?????
噢出現(xiàn)在 file_get_contents這個(gè)函數(shù)的問題上,用file_get_contents雖然可以實(shí)現(xiàn)但表現(xiàn)的效果極不穩(wěn)定,后來改用curl就穩(wěn)定多了但是不會(huì)達(dá)到100%抓取多方面因素造成的,但基本在可接受范圍內(nèi)。
今天時(shí)間有限,分銷系統(tǒng)的定義、獲取微信用戶頭像昵稱等信息還有另一種方式不需要彈出授權(quán)界面、unionid多公眾平臺(tái)開發(fā)的時(shí)候需要用到、實(shí)現(xiàn)持久登錄狀態(tài)需要cookie、以及分銷系統(tǒng)用戶端的商城部分的購物車實(shí)現(xiàn)等內(nèi)容會(huì)在第二次進(jìn)行講解。
附系統(tǒng)訪問路徑二維碼一個(gè),大家可以先看一下只能用微信訪問,可以提問包括系統(tǒng)架構(gòu)、前端JS腳本和一系列功能模塊的實(shí)現(xiàn)問題,我會(huì)根據(jù)大多數(shù)人的需求更改下次更新的內(nèi)容
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:php+微信接口開發(fā)的微信分銷平臺(tái)拆分講解(一)微信oauth2接口-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.rwnh.cn/article42/djpeec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、品牌網(wǎng)站建設(shè)、微信小程序、網(wǎng)站營銷、網(wǎng)站維護(hù)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容