微信分享配置与实例
微信分享配置與實例
- 微信公眾平臺服務器配置
- 微信公眾號分享開發
- 開發過程
- 錯誤解決
- 錯誤1 url domain
- 解決方法
- 錯誤2 40164 invalid ip xxx
- 解決辦法
- 錯誤3 get方法獲取不到res
- 解決辦法
- 錯誤4 找不到文件
- 解決辦法
微信公眾平臺服務器配置
以下就是wx_check.php 的代碼,將這個文件放于你服務器域名下新建的【wx_check】文件夾內。
<?php define("TOKEN", "你的token(任意字符串,與服務器上相同)"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid();class wechatCallbackapiTest {public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;exit;}}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(!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;}}private function checkSignature(){$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 ){return true;}else{return false;}} } ?>
發現一個奇怪現象 在文件夾以及文件名前加上 wx_ 前綴之后秒通過驗證,所以我這里把名字命名為這個wx_xxx
微信公眾號分享開發
開發過程
下載微信示例
里面包含有
示例代碼在sample.php上。
打開sample.php 刪除html代碼,最后剩下
上面這一步主要是起到代碼與數據分離
然后把sample改一個很牛逼的名字,父文件夾 【PHP】 也改一個。注意,最好用英文
將其放入服務器域名文件夾內根目錄t
新建測試項目,
share.png 為分享時展示的圖片,最好為200*200像素尺寸
testshare.php為代碼
然后在你的代碼中這樣寫
將其放入服務器域名內根目錄
瀏覽器訪問這個文件,然后將鏈接發到微信。微信再打開點擊左上角分享到朋友以及分享到朋友圈
錯誤解決
錯誤1 url domain
開發過程中會碰到無法分享的情況,報錯
errmsg config;invalid url domain這個是因為沒有配置好js安全域名
解決方法
錯誤2 40164 invalid ip xxx
errMsg:config :invalid signature這是提示非法簽名。點擊調試
解決辦法
輸入appid 和 secret。看會不會提示這個問題。如果會則是需要將提示的ip地址加入微信白名單
(奇怪的是,我之前一直用的好好的,然后服務器的環境從 laragon 換成 phpstudy 就出現這個問題)
錯誤3 get方法獲取不到res
官方的 sample.php的 get方法獲取不到res.
解決辦法
如圖,把驗證改為不驗證(有一個問題待驗證,就是true改為false之后,是不是白名單就不需要設置了?)
錯誤4 找不到文件
打開鏈接時,仍然提示非法簽名
解決辦法
查看sample.php 的代碼
看看上圖所示url是否寫對。
上面注釋掉的那個url,在調用時不會自動生成上圖那兩個文件。需要拷貝到項目工程里。且不能是空的。必須有有效內容。
獲取有效內容有兩種方式
1 用微信的在線調試工具獲取相應的值
2 用下圖所示的url,沒有這兩個文件,也能自動生成。這樣就有一份文件了
一般我都是用上圖那個未注釋的url,方便,智能。
總結
- 上一篇: css文本行高是哪个属性_css属性行高
- 下一篇: Mapbox简易入门教程