国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

微信開發(fā)--開發(fā)模式簡單配置

2019-11-08 19:53:13
字體:
供稿:網(wǎng)友

微信用戶量很多,那么我們?nèi)绾伍_始一個屬于自己的微信小程序呢,因為自己不是高微信的。最近研究了一下微信,只是先微信的一個小功能。那么下面開始微信開發(fā)的搭建。這里如何申請微信公眾號自己去官網(wǎng)申請就行了。最后登錄該公眾號。下面從我公眾號開始講

開啟開發(fā)者模式

點擊左側(cè)菜單的基本配置

這里寫圖片描述

然后是做微信開發(fā)我們得有一個屬于自己的服務(wù)器,方便在上面編寫代碼。這里我用新浪云作為自己的服務(wù)器。 新浪云服務(wù)注冊地址

新浪云申請

進入新浪云后選擇控制臺sae

這里寫圖片描述

然后點擊創(chuàng)建新應(yīng)用 按鈕 后彈出選擇服務(wù)器的界面,我們選擇標準版的,因為是免費的。

這里寫圖片描述

至于里面的二級域名這就是看個人喜好設(shè)置的了。設(shè)置好之后我們回到父頁面,就是點擊創(chuàng)建新應(yīng)用的那個界面就會看到我們創(chuàng)建的應(yīng)用了,我這里是我實現(xiàn)創(chuàng)立好的。

這里寫圖片描述

微信開發(fā)者配置

通過上面我們就已經(jīng)有了服務(wù)器了,下面我們來填寫微信的相關(guān)配置

這里寫圖片描述

上面的url就填寫我們的新建的新浪云應(yīng)用的地址,至于token隨便你自己填寫,只不過你得記住,因為在新浪云服務(wù)器里寫代碼的時候需要用到。

然后點擊確定你的微信公眾號就成為了開發(fā)者模式了。下面我們開始在服務(wù)器上實現(xiàn)我們的功能

微信服務(wù)器的代碼編寫

點擊我們的應(yīng)用的連接進入應(yīng)用界面

這里寫圖片描述

選擇左側(cè)菜單樹種的應(yīng)用后再點擊代碼管理,在右側(cè)就可以看到應(yīng)用的編輯代碼超鏈接了,點擊超鏈接

這里寫圖片描述

這里我們可以選擇我們index.php進行代碼的修改,或者是實現(xiàn)。直接將下面的代碼賦值到你的服務(wù)器里<?php/* 新華工作室 http://www.cnblogs.com/txw1958/ CopyRight 2014 All Rights Reserved*/define("TOKEN", "與微信配置中的token對應(yīng)");$wechatObj = new wechatCallbackapiTest();if (!isset($_GET['echostr'])) { $wechatObj->responseMsg();}else{ $wechatObj->valid();}class wechatCallbackapiTest{ //驗證簽名 public function valid() { $echoStr = $_GET["echostr"]; $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if($tmpStr == $signature){ header('content-type:text'); echo $echoStr; exit; } } //響應(yīng)消息 public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $this->logger("R ".$postStr); $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); //消息類型分離 switch ($RX_TYPE) { case "event": $result = $this->receiveEvent($postObj); break; case "text": $result = $this->receiveText($postObj); break; default: $result = "unknown msg type: ".$RX_TYPE; break; } $this->logger("T ".$result); echo $result; }else { echo ""; exit; } } //接收事件消息 PRivate function receiveEvent($object) { $content = ""; switch ($object->Event) { case "subscribe": $content = "歡迎關(guān)注新華工作室 "; $content .= (!empty($object->EventKey))?("/n來自二維碼場景 ".str_replace("qrscene_","",$object->EventKey)):""; break; case "unsubscribe": $content = "取消關(guān)注"; break; case "SCAN": $content = "掃描場景 ".$object->EventKey; break; case "CLICK": switch ($object->EventKey) { case "COMPANY": $content = array(); $content[] = array("Title"=>"多圖文1標題", "DescrWord = trim($object->Content); //多客服人工回復(fù)模式 if (strstr($keyword, "您好") || strstr($keyword, "你好") || strstr($keyword, "在嗎")){ $result = $this->transmitService($object); } //自動回復(fù)模式 else{ if (strstr($keyword, "文本")){ $content = "這是個文本消息"; }else if (strstr($keyword, "單圖文")){ $content = array(); $content[] = array("Title"=>"單圖文標題", "Description"=>"單圖文內(nèi)容", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); }else if (strstr($keyword, "圖文") || strstr($keyword, "多圖文")){ $content = array(); $content[] = array("Title"=>"多圖文1標題", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); $content[] = array("Title"=>"多圖文2標題", "Description"=>"", "PicUrl"=>"http://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); $content[] = array("Title"=>"多圖文3標題", "Description"=>"", "PicUrl"=>"http://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); }else if (strstr($keyword, "音樂")){ $content = array(); $content = array("Title"=>"最炫民族風(fēng)", "Description"=>"歌手:鳳凰傳奇", "MusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3", "HQMusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3"); }else{ $content = date("Y-m-d H:i:s",time())."/n"."ID".$object->FromUserName."/n技術(shù)支持 新華工作室"; } if(is_array($content)){ if (isset($content[0]['PicUrl'])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } } return $result; } //回復(fù)文本消息 private function transmitText($object, $content) { $xmlTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>"; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content); return $result; } //回復(fù)語音消息 private function transmitVoice($object, $voiceArray) { $itemTpl = "<Voice> <MediaId><![CDATA[%s]]></MediaId></Voice>"; $item_str = sprintf($itemTpl, $voiceArray['MediaId']); $xmlTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[voice]]></MsgType>$item_str</xml>"; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //回復(fù)圖文消息 private function transmitNews($object, $newsArray) { if(!is_array($newsArray)){ return; } $itemTpl = " <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item>"; $item_str = ""; foreach ($newsArray as $item){ $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']); } $xmlTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>%s</ArticleCount><Articles>$item_str</Articles></xml>"; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray)); return $result; } //回復(fù)音樂消息 private function transmitMusic($object, $musicArray) { $itemTpl = "<Music> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <MusicUrl><![CDATA[%s]]></MusicUrl> <HQMusicUrl><![CDATA[%s]]></HQMusicUrl></Music>"; $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']); $xmlTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[music]]></MsgType>$item_str</xml>"; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //回復(fù)多客服消息 private function transmitService($object) { $xmlTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[transfer_customer_service]]></MsgType></xml>"; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //日志記錄 private function logger($log_content) { if(isset($_SERVER['HTTP_APPNAME'])){ //SAE sae_set_display_errors(false); sae_debug($log_content); sae_set_display_errors(true); }else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL $max_size = 10000; $log_filename = "log.xml"; if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);} file_put_contents($log_filename, date('H:i:s')." ".$log_content."/r/n", FILE_APPEND); } }}?>

token一定要和微信配置中的相同

然后讓我們看看效果吧

這里寫圖片描述


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 怀安县| 怀化市| 贵南县| 德保县| 鱼台县| 河间市| 上思县| 威海市| 蒙阴县| 沿河| 彩票| 封丘县| 根河市| 汝阳县| 时尚| 莆田市| 宁晋县| 崇义县| 萨迦县| 湟源县| 阳朔县| 宝鸡市| 泰安市| 金山区| 弋阳县| 建湖县| 社会| 炉霍县| 修文县| 瑞安市| 高雄县| 浮山县| 驻马店市| 彩票| 利辛县| 黄山市| 威宁| 江山市| 南宫市| 谢通门县| 信阳市|