您好,登錄后才能下訂單哦!
本文不提供整套系統源碼,只會開放部分源碼,講訴開發的經歷、思路、問題解答,希望對新手有幫助,至于高手和大神一下而過或留下寶貴意見在此謝過。
廢話不多說了開始進入正題。
基礎篇
php當前主流WEB開發語言毋庸置疑不用多說。微信接口主要用到微信授權登錄接口、微信JSSDK分享接口、微信支付接口,對于微信的一系列接口必須要牢騷一下到處是坑啊。分銷系統是一種營銷模式以后會解釋。首先說一下第一步微信登錄(oauth3第三方授權接口),個人認為比較重要的一部,優點用戶體驗高、安全性高、為后邊做分銷系統打下便利的基礎,缺點只能在微信內置瀏覽器中訪問對于微信外其他方式宣傳推廣不便利,只能用二維碼的方式(生成鏈接形式的二維碼網上第三方工具很多,也可以用程序來實現,有興趣可以留言)。
首先看一下傳說中的微信API接口文檔吧,官網文檔地址http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
用該接口必須需要一個認證的服務號、沒有的情況下可以申請一個測試賬號體驗一下但不能宣傳推廣
關于網頁授權回調域名的說明
文檔寫的比較清楚,在不用第三方平臺的情況下,需要配置一下項目需要獲取微信用戶信息的路徑,一二.....級域名都可以。這個比較明朗
再往下看第一遍沒看懂,第二遍沒看懂。。。。。。項目是一年前開始開發的當時的文檔比現在還簡陋而且網上可參考的資料很少官方沒有實例,還好最后從一篇文章找到蛛絲馬跡算是做出來了,牢騷一下
其他說明
先介紹幾個參數appid和appsecret在微信公眾平臺中可以找到很多接口的調用都會用到這兩個參數。
最重要的一個參數也是調用授權接口的目的,openid,它是一個微信號對應該公眾平臺的唯一標示,獲取到它就可以認為用戶已經微信登錄了,后邊一切業務流程和數據庫記錄都是圍繞它來建立的。
下面說說如何獲取openid和用戶基本信息比如頭像昵稱城市性別等,這是一個比較蛋疼的過程,這么多步驟玩我們呢是吧?給你找個理由是為了安全性考慮吧。我又發牢騷了不好意思。
分三步
1獲取code,啥是code???不知道反正獲取到它才能進行下一步
接口地址: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是重點它是再用戶通過上述的接口地址發出請求到微信的服務器,微信服務器通過GET方式傳遞一個參數code返回到redirect_uri,用$_GET方式接受一下就可以。scope也是個比較重要的參數他有兩種類型snsapi_base、snsapi_userinfo,說說區別如果只想實現微信登錄也就是只需要openid那么使用snsapi_base,它的好處是用戶在訪問時并不知曉你抓取了他的openid。使用snsapi_userinfo除了可以抓取openid以外,還能抓取到更多很多微信用戶信息,現在很多微信應用都需要頭像和昵稱那么直能使用snsapi_userinfo,缺點為會首先彈出微信授權是否允許的頁面需經過用戶同意才可以進行下一步的操作
如圖:
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格式的數據
3獲取頭像昵稱等...
通過openid和access_token
接口:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
返回的是json格式的數據
參數lang不寫的時候默認返回英文數據
實例代碼片段
a.php
$url='http://www.xxx.com/b.php';
$url=urlencode($url);
$;
@header("location:$href");
b.php
$code=$_GET['code'];
$url='https://api.weixin.qq.com/sns/oauth3/access_token?appid=xxx&secret=xxx&code='.$code.'&grant_type=authorization_code';
$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);
好吧勉強算是實現了。。。。。。。。。。但是經過一段時間的運行抓取信息并不穩定會出現一部分用戶沒有獲取到頭像和昵稱琢磨了很久不知道問題出現在哪里,在哪里?????
噢出現在 file_get_contents這個函數的問題上,用file_get_contents雖然可以實現但表現的效果極不穩定,后來改用curl就穩定多了但是不會達到100%抓取多方面因素造成的,但基本在可接受范圍內。
今天時間有限,分銷系統的定義、獲取微信用戶頭像昵稱等信息還有另一種方式不需要彈出授權界面、unionid多公眾平臺開發的時候需要用到、實現持久登錄狀態需要cookie、以及分銷系統用戶端的商城部分的購物車實現等內容會在第二次進行講解。
附系統訪問路徑二維碼一個,大家可以先看一下只能用微信訪問,可以提問包括系統架構、前端JS腳本和一系列功能模塊的實現問題,我會根據大多數人的需求更改下次更新的內容
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。