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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

微信开发入门

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

下面的代碼實(shí)現(xiàn)了輸入一個(gè)?返回當(dāng)前時(shí)間的功能,其中valid的方法,是用于驗(yàn)證接口的,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ù)接口文檔實(shí)現(xiàn)業(yè)務(wù)邏輯
這里就在于自己開(kāi)發(fā)了

總結(jié)

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

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