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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信分享配置与实例

發布時間:2024/3/13 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信分享配置与实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信分享配置與實例

  • 微信公眾平臺服務器配置
  • 微信公眾號分享開發
    • 開發過程
    • 錯誤解決
      • 錯誤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為代碼

然后在你的代碼中這樣寫

<?php require_once "../牛逼名字/牛逼名字.php"; ?> <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title></title> </head> <body> TEST share </body> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script>/** 注意:* 1. 所有的JS接口只能在公眾號綁定的域名下調用,公眾號開發者需要先登錄微信公眾平臺進入“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。* 2. 如果發現在 Android 不能分享自定義內容,請到官網下載最新的包覆蓋安裝,Android 自定義分享接口需升級至 6.0.2.58 版本及以上。* 3. 常見問題及完整 JS-SDK 文檔地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html** 開發中遇到問題詳見文檔“附錄5-常見錯誤及解決辦法”解決,如仍未能解決可通過以下渠道反饋:* 郵箱地址:weixin-open@qq.com* 郵件主題:【微信JS-SDK反饋】具體問題* 郵件內容說明:用簡明的語言描述問題所在,并交代清楚遇到該問題的場景,可附上截屏圖片,微信團隊會盡快處理你的反饋。*/wx.config({debug: true,appId: '<?php echo $signPackage["appId"];?>',timestamp: <?php echo $signPackage["timestamp"];?>,nonceStr: '<?php echo $signPackage["nonceStr"];?>',signature: '<?php echo $signPackage["signature"];?>',jsApiList: [// 所有要調用的 API 都要加到這個列表中'checkJsApi','onMenuShareTimeline','onMenuShareAppMessage']});//當前鏈接地址var gameUrl = 'http://你的域名/testshare/testshare.html';var imgUrl = 'http://你的域名/testshare/share.png';//分享到朋友數據var sharedata = {title: '分享測試',desc: '分享測試,分享測試,分享測試,分享測試,分享測試,分享測試',link: gameUrl,imgUrl: imgUrl};//分享到朋友圈數據 默認和分享朋友一樣var timelinedata = {title: "分享測試",link: sharedata.link,imgUrl: sharedata.imgUrl};wx.ready(function () {//分享朋友圈wx.onMenuShareTimeline(timelinedata);//分享給朋友wx.onMenuShareAppMessage(sharedata);}); </script> </body> </html>

將其放入服務器域名內根目錄

瀏覽器訪問這個文件,然后將鏈接發到微信。微信再打開點擊左上角分享到朋友以及分享到朋友圈

錯誤解決

錯誤1 url domain

開發過程中會碰到無法分享的情況,報錯

errmsg config;invalid url domain

這個是因為沒有配置好js安全域名

解決方法

  • 打開微信公眾平臺
  • 找到【設置】
  • 找到【功能設置】-》【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 找不到文件


    打開鏈接時,仍然提示非法簽名

    errMsg:config :invalid signature

    解決辦法

    查看sample.php 的代碼

    看看上圖所示url是否寫對。
    上面注釋掉的那個url,在調用時不會自動生成上圖那兩個文件。需要拷貝到項目工程里。且不能是空的。必須有有效內容。
    獲取有效內容有兩種方式
    1 用微信的在線調試工具獲取相應的值
    2 用下圖所示的url,沒有這兩個文件,也能自動生成。這樣就有一份文件了
    一般我都是用上圖那個未注釋的url,方便,智能。

    總結

    以上是生活随笔為你收集整理的微信分享配置与实例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。