php微信公眾平臺(tái)配置接口開發(fā)程序
在閱讀這篇文章之前你要做以下的準(zhǔn)備:
1.注冊(cè)一個(gè)訂閱號(hào)(通過微信公眾平臺(tái)https://mp.weixin.qq.com/);
2.注冊(cè)新浪云并實(shí)名認(rèn)證http://sae.sina.com.cn/
3.實(shí)名認(rèn)證新浪云之后,創(chuàng)建一個(gè)云應(yīng)用.
4.你需要知道php基礎(chǔ)知識(shí).
一:驗(yàn)證接口
1.登錄我們的公眾號(hào).然后點(diǎn)擊進(jìn)入開發(fā)者工具,在登錄之后頁面的左下角.
2.點(diǎn)擊進(jìn)入開發(fā)者文檔.之后點(diǎn)擊開始開發(fā),點(diǎn)擊接入指南,我們會(huì)看到如下圖.
圖片上有說,接入微信公眾平臺(tái)開發(fā),開發(fā)者需要按照如下步驟完成:
1.填寫服務(wù)器配置
2.驗(yàn)證服務(wù)器地址的有效性
3.依據(jù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯.
第一步:填寫服務(wù)器配置
我們登錄微信公眾號(hào)之后,右下角基本開發(fā)配置點(diǎn)進(jìn)去,
URL是開發(fā)者用來接收微信消息和事件的接口URL.具體怎么填我們等下詳細(xì)說.
Token可以隨意填寫(但是每個(gè)人都不一樣的,如果后面提交失敗可以試著修改Token),這個(gè)Token會(huì)和接口中包含的Token進(jìn)行比對(duì),從而驗(yàn)證安全性,EncodingAESKey由開發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。
填寫的URL,需要我們有自己的服務(wù)器的地址,現(xiàn)在我們就要到我們之前注冊(cè)的新浪云云應(yīng)用了.
一.登錄新浪云,點(diǎn)擊云應(yīng)用,點(diǎn)擊進(jìn)入控制臺(tái).如下圖創(chuàng)建
二.級(jí)域名和應(yīng)用名稱,自己起個(gè)名字就好.然后點(diǎn)擊進(jìn)入下圖紅色標(biāo)記的地方.
三.如下圖箭頭指示點(diǎn)擊進(jìn)入編輯代碼
四.之后會(huì)彈出SAE的界面,我們需要在里面建立一個(gè)php文件,然后點(diǎn)擊通過URL訪問,之后我們把這個(gè)網(wǎng)址拷貝下來,放到我們之前基本配置的URL上.
第二步:驗(yàn)證消息的確來自微信服務(wù)器
具體的php代碼如下:
<?php // //最簡(jiǎn)單的驗(yàn)證方式 // echo $_GET["echostr"]; //驗(yàn)證是否來自于微信 function checkWeixin(){ //微信會(huì)發(fā)送4個(gè)參數(shù)到我們的服務(wù)器后臺(tái) 簽名 時(shí)間戳 隨機(jī)字符串 隨機(jī)數(shù) $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $echostr = $_GET["echostr"]; $token = "qilipingmgl"; // 1)將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序 $tmpArr = array($nonce,$token,$timestamp); sort($tmpArr,SORT_STRING); // 2)將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密 $str = implode($tmpArr); $sign = sha1($str); // 3)開發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來源于微信 if ($sign == $signature) { echo $echostr; } } checkWeixin(); ?>
注意:代碼中 $token 是每個(gè)人不同的,我們需要填寫自己的,點(diǎn)擊開發(fā)者工具,之后右邊有公眾平臺(tái)測(cè)試賬號(hào),點(diǎn)擊進(jìn)入,之后我們會(huì)看到接口配置,把Token復(fù)制過來放到代碼中.
我們把這個(gè)代碼復(fù)制到我們剛創(chuàng)建的SAE的php文件里,再保存(記得要保存哦),然后點(diǎn)擊通過URL訪問,
如果報(bào)錯(cuò)了(報(bào)錯(cuò)的信息是數(shù)字的話),請(qǐng)點(diǎn)擊開發(fā)者文檔中,點(diǎn)擊開始前必讀,有個(gè)接口返回碼說明,我們可以對(duì)照一下,錯(cuò)誤在哪里, 注意:0的時(shí)候表示請(qǐng)求成功.
二.獲取access_token
提示:access_token是公眾號(hào)的全局唯一接口調(diào)用憑據(jù),公眾號(hào)調(diào)用各接口時(shí)都需使用access_token.我們作為開發(fā)者要妥善保存,access_token的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。
第一步,我們點(diǎn)擊開發(fā)者文檔,點(diǎn)擊開始開發(fā),點(diǎn)擊獲取access_token之后會(huì)看到,http請(qǐng)求方式:GET,然后一個(gè)網(wǎng)址,我們需要用到這個(gè)網(wǎng)址,如下圖,
E0204D74-2EA6-4943-B93F-7E7C1E2FA88A.png
第二步:我們寫GET請(qǐng)求的函數(shù),獲取access_token
<?php class Weixin{ private $appID = "wxe62f370c4e2cade2"; private $appsecret = "58807091ae5a4c59ee3e47108184bdb7"; function getAccessToken(){ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appID}&secret={$this->appsecret}"; // return $this->httpGet($url); //json字符串 $json = $this->httpGet($url); //解析json $obj = json_decode($json); return $obj->access_token; } function httpGet($url){ //1.初始化 $curl = curl_init(); //配置curl curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //執(zhí)行curl $res = curl_exec($curl); //關(guān)閉curl curl_close($curl); return $res; } } $wx = new Weixin(); echo $wx->getAccessToken(); /* 獲取access_token方法 get方法 */ ?>
注意:代碼中 $appID 和 $appsecret 是每個(gè)人不同的,我們需要填寫自己的,點(diǎn)擊開發(fā)者工具,之后右邊有公眾平臺(tái)測(cè)試賬號(hào),點(diǎn)擊進(jìn)入,之后我們會(huì)看到測(cè)試號(hào)信息.然后復(fù)制過來放到代碼中.
第三步:我們代碼復(fù)制到SAEphp文件中,點(diǎn)擊右鍵通過URL訪問,如果返回 {"access_token":"ACCESS_TOKEN","expires_in":7200} 表示我們獲取token成功.如果不幸報(bào)錯(cuò)了,沒關(guān)系我們找錯(cuò)誤,點(diǎn)擊開發(fā)文檔,點(diǎn)擊開始前必讀,點(diǎn)擊接口返回碼說明,我們對(duì)照一下,根據(jù)提示找錯(cuò)誤就好了.
說道這里我們的配置接口就完成了,下一節(jié)我們繼續(xù)微信開發(fā)->自定菜單創(chuàng)建接口.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類
- php微信公眾平臺(tái)開發(fā)類實(shí)例
- php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類
- php微信公眾平臺(tái)開發(fā)之獲取用戶基本信息
- 微信公眾平臺(tái)開發(fā)接口PHP SDK完整版
- PHP實(shí)現(xiàn)微信公眾平臺(tái)音樂點(diǎn)播
- php版微信公眾平臺(tái)之微信網(wǎng)頁登陸授權(quán)示例
- weiphp微信公眾平臺(tái)授權(quán)設(shè)置
- php微信公眾平臺(tái)開發(fā)之微信群發(fā)信息
- php實(shí)現(xiàn)基于微信公眾平臺(tái)開發(fā)SDK(demo)擴(kuò)展的方法
- PHP Curl模擬登錄微信公眾平臺(tái)、新浪微博實(shí)例代碼
- PHP封裝的微信公眾平臺(tái)接口開發(fā)操作類完整示例
相關(guān)文章
自定義session存儲(chǔ)機(jī)制避免會(huì)話保持問題
PHP服務(wù)端session以文件的方式存儲(chǔ),當(dāng)用戶訪問量過大時(shí)就會(huì)面臨會(huì)話保持的問題,下面有兩種解決方案,需要的朋友可以參考下2014-10-10用PHP實(shí)現(xiàn)遞歸循環(huán)每一個(gè)目錄
很多時(shí)候我們要遍歷一個(gè)文件夾里面的所有目錄,列出里面所有的文件,PHP本身自帶的有一個(gè)readdir的函數(shù),不過只能讀取當(dāng)前的目錄,根據(jù)這個(gè)函數(shù),我寫了另外一個(gè)函數(shù),用來實(shí)現(xiàn)我的需求。2010-08-08PHP實(shí)現(xiàn)獲取兩個(gè)以逗號(hào)分割的字符串的并集
這篇文章主要為大家詳細(xì)介紹了PHP如何實(shí)現(xiàn)獲取兩個(gè)以逗號(hào)分割的字符串的并集,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04PHP gbk環(huán)境下json_dencode傳送來的漢字
在做一個(gè)小項(xiàng)目的時(shí)候用得gbk,發(fā)現(xiàn)json_encode傳過來的漢子不對(duì)。搜索出結(jié)果。。留下印子不忘記。。歡迎指正2012-11-11php正則表達(dá)式(regar expression)
在編寫處理字符串的程序或網(wǎng)頁時(shí),經(jīng)常會(huì)有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的語法。2011-09-09深入eAccelerator與memcached的區(qū)別詳解
本篇文章是對(duì)eAccelerator與memcached的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06使用PHPMailer實(shí)現(xiàn)郵件的實(shí)時(shí)發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了如何使用PHPMailer 實(shí)現(xiàn)一個(gè)接收詢盤并實(shí)時(shí)同步到指定郵箱的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-12-12