多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > [置頂] 微信開發__入門

[置頂] 微信開發__入門

來源:程序員人生   發布時間:2016-06-03 19:27:30 閱讀次數:3282次

0.作者前言

本文針對人群是有1定開發基礎的人員,可以比較快的幫助你了解和學習微信開發.

其次是本文作者本次書寫,全部采取的是個人的定閱號,假設是正常的開發流程,可能會存在不同,請讀者注意.

本文代碼部份主要提供的是關鍵代碼,非關鍵代碼因人而異,需要讀者自行補充,請注意.

今天文章下面對1些方法進行了封裝,雖然在公司里面,這些都是由后臺來對這些任務完成,但是身為1個有理想,有抱負的前端,我們會肯定是有必要的,對吧.而且微信開發很多時候,也是直接由前端來開發完成的.

最后,如果喜歡本文,請關注我呦. 2016年05月31日

CSDN:http://blog.csdn.net/mr_lp?viewmode=contents

二維碼.jpg


1.基本認知

  • 定閱號
  • 公眾號
  • 企業號

具體內容請參考 微信公眾平臺注冊步驟示例圖(企業)

我們只需要明白下面這個圖的內容。

服務類型

2. 開發前準備

  1. 申請1個微信公眾號

    微信公眾號鏈接

我們選擇了

B8BDCB54-7965-4E3C-8B1D-811D1EA02246.png

以后我們首先需要去配置1下接口.

BEF3170B-E101-49E4-880C-BAB290432959.png

以后我們就能夠去修改我們的token.

8980F8D3-802E-4CCD-8DE2-5E26551029C4.png

以后我們需要前往

開發–> 開發者工具 –> 開始開發 –> 接入指南

可以直接點擊 接入指南

找到 PHP示例代碼下載去進行下載.

90EDAB27-02F4-484B-8CEB-BB95370298FA.png

我這里幫大家偷個懶 PHP 示例代碼下載

下載以后我們需要去進行解緊縮,將解緊縮以后的文件名稱去進行1下修改,例如可以改成 wx.php.

以后我們打開php , 去將里面的內容 token 去進行更改.

以后我們將其重新緊縮,緊縮完成以后我們需要打開我們的新浪云去管理我們的 PHP 文件.

首先,使用新浪云首先需要進行新浪云的注冊和實名認證,這里相信大家都能弄明白.

只是額外提1點,新浪云是需要消耗蕓豆的,而新手注冊會贈送200蕓豆,以后則需要自己去購買了.

但是如果是好友約請,你除當前的200以外,應當,注意是應當會額外贈送你200蕓豆,所以咯,小火伴們如果不厭棄,可以直接用我下面的注冊鏈接,這樣你應當就可以取得 400 蕓豆了.

我的約請鏈接 http://t.cn/R5UICr2

017BC6E0-132A-4AA8-AAEA-2EECB4012F7A.png

在我們注冊以后,我們就需要開始去創建我們新的利用了.

0686D7BE-90EE-4C3F-B7F3-2317C59ED72B.png

91BBAD1B-6A56-4F96-A144-E90132B3E543.png

這里需要注意, PHP 的版本不要選太高,否則會影響后面的內容.

4EA53382-E564-4E28-97A9-6C1FBAFE5489.png

創建了空利用以后,我們就能夠在這里找到我們剛才創建的利用了,點擊上面的利用名稱.

364580DA-D4C9-4CF0-9C41-C81AFC2D0B6C.png

找到利用中的代碼管理,以后選擇右邊的上傳代碼.

這時候候發現,提示代碼上傳只支持 zip, gz, tar.gz 3種格式.

這時候候就能夠把我們剛才特地打包好的利用去上傳上去了.

69BF8A1AD257949D9060DCB66CD77ABA.png

上傳以后,我們也能夠在上傳代碼的邊上找到編輯代碼.

以后直接在編輯代碼中去更改我們的 PHP 文件了.

64322644-D3AD-4E72-9CAA-F956ECE6177F.png

還記得我們剛才在邊上有1個鏈接么?

這時候候我們就能夠將剛才的鏈接去直接復制過去,回到微信開發接口這邊,把剛才的 URL 填寫進去.

但是需要注意,我們需要將鏈接補全終了,

也就是將剛才的路徑去做1個更改,將地址和文件名串連在1起,以后回到剛才的接口中,可以去做 URL 的添加,但是需要注意,需要在前面添加上 HTML 協議.

F727B357-FDC3-4FE9-B665-DD992A5C58B4.png

至此,我們已獲得了 我們的接口,接下來就正式進入微信開發.


3.獲得access_token

access_token是公眾號的全局唯1接口調用憑據,公眾號調用各接口時都需使用access_token。開發者需要進行妥善保存。

以上話術出自 獲得access_token

這里主要就是看看你剛才去生成的 APPID 和 APPSECRET 能否正常的獲得.

89F91023-38DC-4B7D-A872-8116D6B06040.png

這里我們可以直接現在網頁中去嘗試1下,看看能否獲得數據.

DB6B8E48-B614-46A8-9401-E7FCF497A8A8.png

這里把剛才的APPID 等填寫進去,如果成功的話,我們應當就可以看見我們的 access_token 了.

http要求方式:

GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

這塊代碼是固定的,可以直接粘貼.

E37C17A7-9D0D-4D67-A369-2B71BDBDF90F.png

可是我現在只是在網頁中獲得出來了,我們要是在程序中怎樣去獲得呢?難道用 AJAX ? 固然不是,這時候候我們需要使用 PHP 去獲得.

<?php $appid = "**********這里書寫自己的 id*********"; $appsecret = "**********這里書寫自己的secret*********"; $api = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}}&secret={$appsecret}"; $json = file_get_contents($api); // 這類可以進行獲得,但是數據不穩定,所以不推薦使用 // 微信官方推薦使用的方法是 curl, // 我們可以新建1個 PHP,去 打印1下 phpinfo(); // 以后在網頁中去查詢1下是不是有 curl 這個內容 echo $json; ?>

如果我們驗證以后確切存在,我們就能夠去使用微信提供的方式.

<?php $appid = "**********這里書寫自己的 id*********"; $appsecret = "**********這里書寫自己的secret*********"; $api = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}}&secret={$appsecret}"; //$json = file_get_contents($api); // 這類可以進行獲得,但是數據不穩定,所以不推薦使用 // 微信官方推薦使用的方法是 curl, // 我們可以新建1個 PHP,去 打印1下 phpinfo(); // 以后在網頁中去查詢1下是不是有 curl 這個內容 // echo phpinfo();//比file_get_contents穩定且能發送post要求 function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); // 為保證第3方服務器與微佩服務器之間數據傳輸的安全性,所有微信接口采取https方式調用,必須使用下面2行代碼打開ssl安全校驗。 // 如果在部署進程中代碼在此處驗證失敗,請到 http://curl.haxx.se/ca/cacert.pem 下載新的證書辨別文件。 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 這里進行注釋是由于這里是進行 token 去進行驗證 // 避免其他人歹意刷內容 // 這里由于是本地測試,所以注釋1下,正式上線的時候還是需要注釋開的 curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } $json = httpGet($api); echo $json; ?>

此段代碼可以在 微信JS-SDK中查詢到.

這時候候我們應當就可以夠獲得我們的 token 了,但是我們現在還需要將其重新獲得出來,我們可以將其轉換為1個數組,以后重新獲得我們的 access_token.

<?php $appid = "**********這里書寫自己的 id*********"; $appsecret = "**********這里書寫自己的secret*********"; $api = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}}&secret={$appsecret}"; function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } $str = httpGet($api); // 第2個參數設置為 true ,返回值改成數組 $arr = json_decode($str,true); print_r($arr); $accessToken = $arr["assess_token"]; ?>

我們已獲得了具體的 access_token, 以后我們就能夠存入我們的數據庫中,每次使用的時候去進行1個判斷,如果是舊的就去獲得新的替換它.

這里不對數據庫操作做更多說明,這個完全看自己習慣,

只是補充1點, token 的 類型要是 TEXT ,time 的類型最好是 VARCHAR.

7B711FC2-1A2F-454E-B3FA-19B0DBE97BEA.png

以后回到代碼部份,這時候候我們會首先去連接1下我們剛才的數據庫.

具體連接數據庫請自行操作.

以后我們就去通過數據庫操作去獲得到我們的 token.

<?php $appid = "**********這里書寫自己的 id*********"; $appsecret = "**********這里書寫自己的secret*********"; function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } $str = httpGet($api); function getToken(){ global $appid; global $appsecret; $api = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}}&secret={$appsecret}"; // 第2個參數設置為 true ,返回值改成數組 $arr = json_decode($str,true); // print_r($arr); $accessToken = $arr["assess_token"]; return $accessToken; } $sql = "SELECT * FROM token"; $result = mysql_query($sql); if (mysql_num_rows($result) > 0) { //我們判斷時間是不是過期 $row = mysql_fetch_assoc($result); $time = $row["time"]; $nowTime = time(); // 由于剛才微信默許的有效時間是7200秒(2小時) if ($nowTime - $time > 7200) { // 過期了,重新獲得并更新數據庫 $token = getToken(); $time = time(); $sql = "UPDATE token SET token='{$token}',time='$time'"; mysql_query($sql); if (mysql_affected_rows() > 0) { echo "更新成功"; } else{ echo "更新失敗"; } } else{ // 沒過期 $token = $row["token"]; } echo $token; } else{ //沒有的話,就直接去插入 $sql = "INSERT INTO token(id,token,time) VALUES (NULL,'{$accessToken}','{$time}')"; mysql_query($sql); if (mysql_insert_id() > 0) { echo "插入成功"; } else{ echo "插入失敗"; } } echo $token; ?>

4.獲得微佩服務器IP地址

如果公眾號基于安全等斟酌,需要獲知微佩服務器的IP地址列表,以便進行相干限制,可以通過該接口取得微佩服務器IP地址列表或IP網段信息。

以上話術出自 獲得微佩服務器IP地址

34AA61D0-C309-4A67-9F2A-5ACF1204BCEF.png

http要求方式:

GET
https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN

這里我們首先可以先來獲得1下微信的服務器列表.

// 獲得微佩服務器列表 function getIP($token){ $api = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token={$token}"; $json = http_get($api); echo $json; } getIP($token);

我們再對其進行1下封裝,

// 獲得微佩服務器列表 function getIP($token){ $api = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token={$token}"; $json = http_get($api); $arr = json_decode($json,true); return $arr["ip_list"]; } $ip_List = getIP($token); print_r($ip_List);

記得實際操作的時候,需要對獲得到的數據進行1個驗證,只有在獲得到了對應的數據以后再進行下面的操作.

一樣的操作,像我們想獲得用戶列表等內容,一樣也是如此.

5.獲得用戶列表

公眾號可通過本接口來獲得帳號的關注者列表,關注者列表由1串OpenID(加密后的微信號,每一個用戶對每一個公眾號的OpenID是唯1的)組成。1次拉取調用最多拉取10000個關注者的OpenID,可以通過量次拉取的方式來滿足需求。

以上話術出自 獲得用戶列表

http要求方式:

GET(請使用https協議)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

A36B4175-B2F7-41BA-9412-A06EECCDBA2A.png

我們也能夠對其進行1下封裝.

// 第2個參數為可選參數 function getUserList($token,$nextOpendId = false){ if ($nextOpendId) { $api = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={$token}&next_openid={$nextOpendId}"; } else{ $api = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={$token}"; } $json = httpGet($api); echo $json; // $arr = json_decode($json,true); } getUserList($token); // 用這個方法可以獲得到我們的內容是從哪一個位置開始 // 例如假設有 100個人,我們給定的是 第50 個人的 token, 返回的應當是 51 - 100 // getUserList($token,"用戶的 token 內容");

這時候候我們就能夠對其進行1下打印,打印以后就能夠看到我們的想要的用戶列表了.

6.獲得用戶詳細信息

在關注者與公眾號產生消息交互后,公眾號可取得關注者的OpenID(加密后的微信號,每一個用戶對每一個公眾號的OpenID是唯1的。對不同公眾號,同1用戶的openid不同)。公眾號可通過本接口來根據OpenID獲得用戶基本信息,包括昵稱、頭像、性別、所在城市、語言和關注時間。
請注意,如果開發者有在多個公眾號,或在公眾號、移動利用之間統1用戶帳號的需求,需要前往微信開放平臺(open.weixin.qq.com)綁定公眾號后,才可利用UnionID機制來滿足上述需求。

上方出自 微信公眾平臺說明 獲得用戶基本信息(UnionID機制)

http要求方式:

GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 

2938F6E2-04F3-4152-85C0-4F55FA5E85B1.png

//獲得用戶詳細信息 function getUserInfo($token,$userOpenId){ $api = "http要求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token={$token}}&openid={$userOpenId}}&lang=zh_CN"; $json = httpGet($api); $arr = json_decode($json,true); return $arr; } getUserList($token,"用戶的 token 內容"); $userInfo = getUserInfo($token,"某1用戶的 token"); // 獲得用戶信息 print_r($userInfo); // 獲得用戶頭像 echo "<img src = '".$userInfo["headimgurl"]."'>";

7.長鏈接轉短鏈接接口

在今天文章最后,我們再來給大家演示1個 post 接口的寫法.

將1條長鏈接轉成短鏈接。
主要使用處景: 開發者用于生成2維碼的原鏈接(商品、支付2維碼等)太長致使掃碼速度和成功率降落,將原長鏈接通過此接口轉成短鏈接再生成2維碼將大大提升掃碼速度和成功率。

上述話語出自 長鏈接轉短鏈接接口

http要求方式:
POST
https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN

以上要求網址是固定的,可以直代替換.

1E84F82C-287E-4D30-B105-DF820C721DBA.png

function httpPost($data,$url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch); if (curl_errno($ch)) { return curl_error($ch); } curl_close($ch); return $tmpInfo; } function longToShort($token,$url){ $api = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token={$token}"; // 這里直接采取官網提供的url 了 $data = '{"action":"long2short","long_url":"'$url.'"}'; $json = httpPost($data,$api); // echo $json; return json_decode($json,true); } longToShort($token,"https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433600&token=&lang=zh_CN"); print_r($arr);

這時候候我們可以去打印1下現在的URL ,這時候候我們就沒必要使用之前的非常長的接口內容了,而可以直接去使用我們縮短的網址了.

同時這個函數不單單可以用在此處,其余時候也能夠直接去使用.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩欧美一区二区三区不卡在线 | 校园春色在线视频 | 精品国产综合成人亚洲区 | 一级一级特黄女人精品毛片视频 | 久久久国产这里有的是精品 | 波多野结衣一区 | 亚洲最大免费视频网 | 久久99精品国产99久久6男男 | 国产一区 在线播放 | 91福利国产在线观看香蕉 | 依人在线免费视频 | 欧美一级级毛片 | 最近中文字幕完整在线看一 | 日本亚洲国产精品久久 | 性xxxx奶大欧美高清 | 大香伊蕉在人线国产75视频 | 久久久久99这里有精品10 | 亚洲精品亚洲人成人网 | 真人肉体一级毛片 | 久久国产精品老人性 | 亚洲18av| 午夜影院亚洲 | 欧美日韩性生活视频 | 成人午夜视频在线播放 | 2020国产精品永久在线观看 | 久久国产精品久久久久久 | 亚洲日本一区二区三区 | 亚洲欧美bt| 亚洲国产成人久久精品影视 | 美国特级成人毛片 | 在线视频亚洲欧美 | 精品一区二区三区高清免费不卡 | 成人二区| free性欧美极度另类性性欧美 | 欧美性猛交xxxx黑人喷水 | 一二三四视频免费视频 | 亚洲视频在线视频 | 国产免费叼嘿视频 | 亚洲宅男天堂a在线 | 久久精品男人的天堂 | 69视频在线|