溫州柳市鎮(zhèn)微信公眾號(hào)開發(fā)完整教程一

閱讀 34714  ·  發(fā)布日期 2020-08-24 17:26  ·  溫州優(yōu)光網(wǎng)絡(luò)科技有限公司|建站|APP小程序制作|做網(wǎng)站SEO推廣優(yōu)化
【摘要】 這篇文章介紹的內(nèi)容是關(guān)于微信公眾號(hào)開發(fā)完整教程一,有著一定的參考價(jià)值,現(xiàn)在分享給大家,有需要的朋友可以參考一下因?yàn)楣ぷ鞯男枰?,這一兩年對(duì)微信公眾號(hào)和小程序,項(xiàng)目制作的比較多。所以我才打算寫一篇全面的制作教程,當(dāng)然了,最好的教程是微信工作平臺(tái)的文檔。我這里只是講述一下我的工作中的制作流程。所有相關(guān)文章的源碼,我托管在我自... 【溫州小程序開發(fā),溫州微信公眾號(hào),平陽做網(wǎng)站,平陽網(wǎng)站建設(shè)公司,平陽小程序商城制作,昆陽萬全做網(wǎng)站,鰲江水頭小程序,蕭江騰蛟微信公眾號(hào),山門順溪南雁海西南麂鳳臥麻步懷溪網(wǎng)絡(luò)網(wǎng)店服務(wù),政采云網(wǎng)店管理服務(wù)】...

微信公眾號(hào)開發(fā)完整教程一

這篇文章介紹的內(nèi)容是關(guān)于微信公眾號(hào)開發(fā)完整教程一,有著一定的參考價(jià)值,現(xiàn)在分享給大家,有需要的朋友可以參考一下因?yàn)楣ぷ鞯男枰@一兩年對(duì)微信公眾號(hào)和小程序,項(xiàng)目制作的比較多。
所以我才打算寫一篇全面的制作教程,當(dāng)然了,最好的教程是微信工作平臺(tái)的文檔。
我這里只是講述一下我的工作中的制作流程。
所有相關(guān)文章的源碼,我托管在我自己的github上面,歡迎關(guān)注:
地址點(diǎn)擊打開鏈接。
接下來開始我們的教程。
1.微信與公眾平臺(tái)的區(qū)別:
微信:
即時(shí)聊天的軟件,屬于一對(duì)一的關(guān)系微信公眾平臺(tái):
屬于一對(duì)多的關(guān)系。
2.訂閱號(hào)與服務(wù)號(hào)的區(qū)別:
訂閱號(hào):
針對(duì)個(gè)人或媒體每天可以群發(fā)1條信息,默認(rèn)不具有自定義菜單。
服務(wù)器號(hào):
針對(duì)企業(yè)或銀行每月可以群發(fā)4條信息,默認(rèn)具有自定義菜單。
運(yùn)營主體是組織(比如企業(yè)、媒體、公益組織)的,可以申請服務(wù)號(hào)。
運(yùn)營主體是組織和個(gè)人的可以申請訂閱號(hào),但是個(gè)人不能申請服務(wù)號(hào)。
3.公眾平臺(tái)的兩種模式:
1、編輯模式:
直接使用微信公眾平臺(tái)所提供的后臺(tái)操作進(jìn)行用戶交互。
編輯模式可以使用在如下的場景:
不具備開發(fā)能力的運(yùn)營者,主要是進(jìn)行品牌宣傳、新聞媒體、自助客服的公眾賬號(hào),運(yùn)營初期,不需要特別多的功能,開發(fā)模式系統(tǒng)升級(jí),故障等特殊情況2、開發(fā)者模式:
直接使用接口代碼實(shí)現(xiàn)用戶的交流4.微信公眾平臺(tái)前期準(zhǔn)備:
注冊公眾平臺(tái),擁有線上服務(wù)器5.認(rèn)識(shí)一下編輯模式:
原理:5.1消息群發(fā):
選擇對(duì)象選擇素材進(jìn)行群發(fā):
5.2:
自定義菜單:
啟用自定義菜單,并開啟:
點(diǎn)擊查看,進(jìn)入設(shè)置界面:
5.3自動(dòng)回復(fù):
上述講述的主要是編輯模式的使用,我想很多人應(yīng)該都會(huì)使用,其實(shí)和我們平常在論壇編輯文章和帖子差不多。
6.開發(fā)者模式原理:
6.1第一步我們要開啟開發(fā)者模式:
注意:
在開啟開發(fā)者模式之后編輯模式中部分功能不能正常使用。
即開發(fā)者模式跟編輯模式存在沖突。
進(jìn)入設(shè)置界面:
修改配置:
設(shè)置結(jié)果如下圖:
填寫上你的服務(wù)器文件地址,token,點(diǎn)擊提交,驗(yàn)證即可。
如果提交并驗(yàn)證通過,就進(jìn)入到開發(fā)者模式6.2我線上的驗(yàn)證代碼如下:
public function valid(){
//獲取隨機(jī)字符串 $echoStr = input("echostr");
if($echoStr){
// 驗(yàn)證接口的有效性,由于接口有效性的驗(yàn)證必定會(huì)傳遞echostr 參數(shù) if($this ->checkSignature()){
echo $echoStr;
exit;
}
}
else{
$this->responseMsg();
}
}
protected function checkSignature() {
// 微信加密簽名 $signature = input("signature");
$timestamp = input("timestamp");
//時(shí)間戳 $nonce =input("nonce");
//隨機(jī)數(shù) $token = "weixin";
//token值,必須和你設(shè)置的一樣 $tmpArr =array($token,$timestamp,$nonce);
sort($tmpArr,SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr =sha1($tmpStr);
if($tmpStr == $signature){
return true;
}
else{
return false;
}
}
關(guān)于上述代碼中的變量來源,微信都有詳細(xì)的說明,我搭建的公眾號(hào)使用的是PHP7.0版本,TP5.0框架。
在這里說明一下。
上述代碼只會(huì)執(zhí)行一次,開啟開發(fā)者模式之后,就不會(huì)在執(zhí)行,只會(huì)執(zhí)行上述代碼中的responseMsg方法。
我們先上傳一段測試代碼試試,回復(fù)文本消息,是否有回復(fù),代碼如下:
public function responseMsg() {
//get post data, May be due to the different environments $postStr = file_get_contents('
php://input'
);
//extract post data if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection, the best way is to check the validity of xml by yourself */ libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postStr, '
SimpleXMLElement'
, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "%s0";
if(!empty( $keyword )) {
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}
else{
echo "Input something...";
}
}
else {
echo "";
exit;
}
}
結(jié)果如下:
,由于微信的網(wǎng)頁授權(quán)的限制,所以我們可以申請測試賬號(hào),我這里使用的就是測試賬號(hào)。
上述的開啟開發(fā)者模式是一樣的。
只需要去申請一個(gè)測試賬號(hào)就好。
申請的地方:
如果出現(xiàn)上述的代碼,說明我們已經(jīng)測試成功。
接下來,我們開始獲取access_token的值,這個(gè)參數(shù)對(duì)于我們來說很重要。
因?yàn)閍ccess_token是公眾號(hào)的全局唯一接口調(diào)用憑據(jù),公眾號(hào)調(diào)用各接口時(shí)都需使用access_token。
開發(fā)者需要進(jìn)行妥善保存。
access_token的存儲(chǔ)至少要保留512個(gè)字符空間。
access_token的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。
access_token是身份認(rèn)證 其他接口基本上都需要使用該值進(jìn)行驗(yàn)證。
7.access_token獲取:
(可以在本地測試)7.1查看接口說明:獲取access_token方式一:結(jié)果如下:
獲取access_token方式二:
結(jié)果如下:
我們開始對(duì)上述的代碼進(jìn)行封裝,因?yàn)閍ccess_token,每天只能調(diào)用2000次,所以我們要緩存起來,這樣才能達(dá)到復(fù)用的效果,7.2:
curl封裝發(fā)送請求和獲取access_token封裝:
// 獲取請求的地址的方法if(!function_exists("http_curl")){
function http_curl($url,$data =array(),$method ="get",$returnType ="json") {
//1.開啟會(huì)話 $ch = curl_init();
//2.設(shè)置參數(shù) curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
if($method!="get"){
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($ch,CURLOPT_URL,$url);
//執(zhí)行會(huì)話 $json = curl_exec($ch);
curl_close($ch);
if($returnType == "json"){
return json_decode($json,true);
}
return $json;
}
}
if(!function_exists('
get_access_token'
)){
function get_access_token() {
$appid = "wx1ba8f59d9e2c0be0";
//微信的appid $secret ="9e65155599fb9ec047455e197ff6e121";
//微信的開發(fā)者密鑰 // 讀取緩存中的內(nèi)容 include_once "MyMemcache.php";
//引入緩存方法文件 $obj = new MyMemcache("47.104.71.253");
$value = $obj ->get($appid);
if(!$value){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$result = http_curl($url);
$value = $result['
access_token'
];
$obj->set($appid,$value,7000);
}
return $value;
}
}
上述代碼就是我對(duì)這兩個(gè)方法的封裝,其中我們用到了緩存技術(shù):
緩存的方法如下:
// memcache操作類class MyMemcache{
public $conn;
public $isMemcache =true;
public function __construct($host="127.0.0.1",$port='
11211'
) {
// 建立連接 if(class_exists('
MyMemcache'
)){
$obj =new Memcache();
}
else{
$this ->isMemcache =false;
$obj =new Memcached();
}
$obj ->addServer($host,$port);
$this ->conn =$obj;
}
//獲取數(shù)據(jù) public function get($key) {
return $this->conn->get($key);
}
//設(shè)置數(shù)據(jù) public function set($key,$value,$expire=0) {
if($this->isMemcache){
$this->conn->set($key,$value,0,$expire);
}
else{
// Memcached擴(kuò)展的操作方式 $this->conn->set($key,$value,$expire);
}
}
}
結(jié)合上述的三個(gè)方法,我們就可以實(shí)現(xiàn)獲取access_token的值,并保存在緩存系統(tǒng),7000s去重新獲取一次。
上述的步驟完成,我們就算是對(duì)微信公眾號(hào)的開發(fā)的基本準(zhǔn)備全部準(zhǔn)備完畢,接下來就開始對(duì)著微信開發(fā)者文檔進(jìn)行開發(fā)和數(shù)據(jù)的替換了。
第一節(jié)先講述到這里.....相關(guān)文章推薦:
1.微信公眾號(hào)開發(fā)完整教程二 2.微信公眾號(hào)開發(fā)完整教程三3.微信公眾號(hào)開發(fā)完整教程四相關(guān)視頻推薦:
1.php微信接口開發(fā)實(shí)戰(zhàn)項(xiàng)目視頻教程 聊天機(jī)器人+微信支付2.開發(fā)微信小程序視頻教程以上就是微信公眾號(hào)開發(fā)完整教程一的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
微信
分享相關(guān)標(biāo)簽:
教程 完整 開發(fā)本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
上一篇:
微信API接口
下一篇:
如何使用koa2搭建微信第三方公眾平臺(tái)相關(guān)文章相關(guān)視頻php微信支付流程是什么php獲取微信openidphp如何進(jìn)行微信公眾號(hào)開發(fā)mpvue如何開發(fā)微信小程序?基礎(chǔ)知識(shí)介紹微信公眾號(hào)開發(fā)完整教程一(歐陽克)微信小程序與CMS后臺(tái)如何定制群發(fā)微信消息如何自動(dòng)拉微信群安裝微信開發(fā)者工具微信開發(fā)者工具 [溫州做微信公眾號(hào)]