首頁 >後端開發 >php教程 >php+微信介面開發的微信分銷平台分割解說(一)微信oauth2接口

php+微信介面開發的微信分銷平台分割解說(一)微信oauth2接口

WBOY
WBOY原創
2016-07-30 13:30:261287瀏覽

本人一IT民工一枚,不是高手更不是大神但希望能成為雷鋒。沒有神馬文筆,只會發牢騷,講解不清楚可以繼續提問在時間允許的情況下我會盡量去回答。

本文不提供整套系統源碼,只會開放部分源碼,講訴開發的經歷、思路、問題解答,希望對新手有幫助,至於高手和大神一下而過或留下寶貴意見在此謝過。


廢話不多說了開始進入正題。

基礎篇

php當前主流WEB開發語言毋庸置疑不用說。微信介面主要用到微信授權登入介面、微信JSSDK分享介面、微信支付接口,對於微信的一系列接口必須要牢騷一下到處是坑啊。分銷系統是一種行銷模式以後會解釋。首先說一下第一步微信登入(oauth2第三方授權介面),個人認為比較重要的一部,優點用戶體驗高、安全性高、為後邊做分銷系統打下便利的基礎,缺點只能在微信內建瀏覽器中存取對於微信外其他方式宣傳推廣不便利,只能用二維碼的方式(生成鏈接形式的二維碼網上第三方工具很多,也可以用程序來實現,有興趣可以留言)。

 

首先看一下傳說中的微信API介面文件吧,官網文件地址http://mp.weixin.14mp.com b468d75.html

用該介面必須需要一個認證的服務號碼、沒有的情況下可以申請一個測試帳號體驗一下但不能宣傳推廣

關於網頁授權回調域名的說明

文檔寫的比較清楚在不用第三方平台的情況下,需要設定專案需要取得微信用戶資訊的路徑,一二.....級網域都可以。這個比較明朗

再往下看第一遍沒看懂,第二遍沒看懂。 。 。 。 。 。項目是一年前開始開發的當時的文檔比現在還簡陋而且網上可參考的資料很少官方沒有實例,還好最後從一篇文章找到蛛絲馬跡算是做出來了,牢騷一下

 

其他說明

先介紹幾個參數appid和appsecret在微信公眾平台中可以找到很多介面的呼叫都會用到這兩個參數。

最重要的一個參數也是調用授權接口的目的,openid,它是一個微信號對應該公眾平台的唯一標示,獲取到它就可以認為用戶已經微信登錄了,後邊一切業務流程和數據庫記錄都是圍繞著它來建立的。

下面說說如何獲取openid和用戶基本資訊例如頭像暱稱城市性別等,這是一個比較蛋疼的過程,這麼多步驟玩我們呢?給你找個理由是為了安全性考慮。我又發牢騷了不好意思。

分三步驟

1取得code,啥是code? ? ?不知道反正取得到它才能進行下一步

介面位址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&resp/span>/

appid剛才提高過在公眾平台裡可以找到,redirect_uri是重點它是再用戶通過上述的接口地址發出請求到微信的伺服器,微信通過是重點它是再用戶通過上述的接口地址發出請求到微信的服務器,微信通過通過一個參數code回到redirect_uri,$_GET方式接受一下就可以。 scope也是個比較重要的參數他有兩種類型snsapi_basesnsapi_userinfo snsapi_base,它的好處是用戶在訪問時並不知曉你抓取了他的openid。使用snsapi_userinfo除了可以抓取openid以外,還能抓取到更多很多微信用戶信息,現在很多微信應用都需要頭像和暱稱那麼直能使用snsnsns,現在很多微信應用都需要頭像和暱稱那麼直能使用snsns會先彈出微信授權是否允許的頁面需經過使用者同意才可以進行下一步的操作如圖:

access_token

透過剛才取得的

code

以及appid以及appid

appappidappappid https://api.weixin.qq .com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

回傳的是

3取得頭像暱稱等 ...

透過openid

access_token

:ACChttps://apiwein.R.com/c.S.S.com44:)ACC https ID&lang=zh_CN

回傳的是json格式的資料

參數程式碼片段a .php

$url='http://www.xxx.com/b.php';$url=urlencode($url);

$href="https://$href="https:// open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=$url&resp/span>@header("location:$href");

$code=$_GET['code'];

$url='https://api.weixin.qq.com/sns/oauth2/access_token?appid=xxx&secret=xxx&code='.$code. '&grant_type=authorization_code';

$js/span>

$jsonstr = json_decode($jsonstr,true); 

. $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達到

100%抓取多方面因素造成的,但基本上在可接受範圍內。

 

 

今天時間有限,分銷系統的定義、獲取微信用戶頭像暱稱等資訊還有另一種方式不需要彈出授權界面、unionid多公眾平台開發的時候需要用到、實現持久登錄狀態需要cookie、以及分銷系統用戶端的商城部分的購物車實現等內容會在第二次進行講解。

 

附系統訪問路徑二維碼一個,大家可以先看一下只能用微信訪問,可以提問包括系統架構、前端JS腳本和一系列功能模組的實現問題,JS

腳本和一系列功能模組的實作問題我會根據大多數人的需求更改下次更新的內容

 

 

 

 


版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

以上就介紹了php+微信接口開發的微信分銷平台拆分講解(一)微信oauth2接口,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn