日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信开发入门

發(fā)布時間:2024/7/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信开发入门 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

微信開發(fā)需要搭建PHP環(huán)境

參考鏈接:Apache2.2與php5.3.5如何整合?如何能夠被使用_百度經(jīng)驗

搭建的過程出現(xiàn)了很多坑,只能小心,重復(fù)搭建了,錯誤原因可能是VC9或VC11環(huán)境沒有配置的原因,多試試才行。

然后通過基本配置修改微信服務(wù)器配置,這樣發(fā)送的消息就會發(fā)送到我們的URL,而不是微信官方的,從而實現(xiàn)自定義微信。

接入微信公眾平臺開發(fā),開發(fā)者需要按照如下步驟完成:

1、填寫服務(wù)器配置
2、驗證服務(wù)器地址的有效性
3、依據(jù)接口文檔實現(xiàn)業(yè)務(wù)邏輯

第一步:填寫服務(wù)器配置

登錄微信公眾平臺官網(wǎng)后,在公眾平臺后臺管理頁面 - 開發(fā)者中心頁,點擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開發(fā)者用來接收微信消息和事件的接口URL。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會和接口URL中包含的Token進行比對,從而驗證安全性)。EncodingAESKey由開發(fā)者手動填寫或隨機生成,將用作消息體加解密密鑰。

同時,開發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務(wù)器配置在提交后都會立即生效,請開發(fā)者謹慎填寫及選擇。加解密方式的默認狀態(tài)為明文模式,選擇兼容模式和安全模式需要提前配置好相關(guān)加解密代碼,詳情請參考消息體簽名及加解密部分的文檔。

此處的URL為自定義的云應(yīng)用的IP或域名,而Token在index.php中定義為weixin,由你自己定義,也可以為其他的。EncodingAsKey
不用填,可以直接生成,

第二步:驗證服務(wù)器地址的有效性

開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請求到填寫的服務(wù)器地址URL上,GET請求攜帶四個參數(shù):

signature 微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請求中的timestamp參數(shù)、nonce參數(shù)。
timestamp 時間戳
nonce 隨機數(shù)
echostr 隨機字符串

在開發(fā)者首次提交驗證申請時,微信服務(wù)器將發(fā)送GET請求到填寫的URL上,并且?guī)纤膫€參數(shù)(signature、timestamp、nonce、echostr),開發(fā)者通過對簽名(即signature)的效驗,來判斷此條消息的真實性。

此后,每次開發(fā)者接收用戶消息的時候,微信也都會帶上前面三個參數(shù)(signature、timestamp、nonce)訪問開發(fā)者設(shè)置的URL,開發(fā)者依然通過對簽名的效驗判斷此條消息的真實性。效驗方式與首次提交驗證申請一致。

下面的代碼實現(xiàn)了輸入一個?返回當(dāng)前時間的功能,其中valid的方法,是用于驗證接口的,responseMsg方法用于返回消息

<?php /*方倍工作室 http://www.cnblogs.com/txw1958/CopyRight 2013 www.fangbei.org All Rights Reserved */define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) {$wechatObj->valid(); }else{$wechatObj->responseMsg(); }class wechatCallbackapiTest {public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){header('content-type:text');echo $echoStr;exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}public function responseMsg(){$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";if($keyword == "?" || $keyword == "?"){$msgType = "text";$contentStr = date("Y-m-d H:i:s",time());$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}}else{echo "";exit;}} } ?>

第三步:依據(jù)接口文檔實現(xiàn)業(yè)務(wù)邏輯
這里就在于自己開發(fā)了

總結(jié)

以上是生活随笔為你收集整理的微信开发入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。