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