script src= http://外部站點引入/js/html' target='_blank'>jquery-1.11.1.min.js /script
script src= /uploads/allimg/190528/120Z4JX-1.jpg /script script var url=location.href; $.ajax({ type : get , url : http://xxx/jssdk.php?url= +url,//替換網(wǎng)址,xxx根據(jù)自己jssdk文件位置修改 dataType : jsonp , jsonp: callback , jsonpCallback: success_jsonpCallback , success : function(data){ wx.config({ appId: data.appId, timestamp: data.timestamp, nonceStr: data.nonceStr, signature: data.signature, jsApiList: [ onMenuShareTimeline , //分享給好友 onMenuShareAppMessage , //分享到朋友圈 onMenuShareQQ , //分享到QQ onMenuShareWeibo //分享到微博] error:function(data){ alert( 連接失敗! wx.ready(function (){ var shareData = { title: 標(biāo)題 , desc: 簡介 ,//這里請?zhí)貏e注意是要去除html link: 鏈接 , imgUrl: 標(biāo)題圖 wx.onMenuShareAppMessage(shareData); wx.onMenuShareTimeline(shareData); wx.onMenuShareQQ(shareData); wx.onMenuShareWeibo(shareData); }); /script 修改服務(wù)端文件jssdk.php
?php$url = $_GET[ url class JSSDK { private $appId; private $appSecret; private $url; public function __construct($appId, $appSecret,$url) { $this- appId = $appId; $this- appSecret = $appSecret;$this- url = $url; } public function getSignPackage() { $jsapiTicket = $this- getJsApiTicket(); $protocol = (!empty($_SERVER[ HTTPS ]) $_SERVER[ HTTPS ] !== off || $_SERVER[ SERVER_PORT ] == 443) ? https:// : http:// // $url = $protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI] $url =$this- $timestamp = time(); $nonceStr = $this- createNonceStr(); // 這里參數(shù)的順序要按照 key 值 ASCII 碼升序排序 $string = jsapi_ticket=$jsapiTicket noncestr=$nonceStr timestamp=$timestamp url=$url $signature = sha1($string); $signPackage = array( appId = $this- appId, nonceStr = $nonceStr, timestamp = $timestamp, url = $url, signature = $signature, rawString = $string ); return $signPackage; } private function createNonceStr($length = 16) { $chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 $str = for ($i = 0; $i $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } private function getJsApiTicket() { // jsapi_ticket 應(yīng)該全局存儲與更新,以下代碼以寫入到文件中做示例 $data = json_decode(file_get_contents( jsapi_ticket.json )); if ($data- expire_time time()) { $accessToken = $this- getAccessToken(); // 如果是企業(yè)號用以下 URL 獲取 ticket // $url = https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken $url = https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi access_token=$accessToken $res = json_decode($this- httpGet($url)); $ticket = $res- ticket; if ($ticket) { $data- expire_time = time() + 7000; $data- jsapi_ticket = $ticket; $fp = fopen( jsapi_ticket.json , w fwrite($fp, json_encode($data)); fclose($fp); } else { $ticket = $data- jsapi_ticket; } return $ticket; } private function getAccessToken() { // access_token 應(yīng)該全局存儲與更新,以下代碼以寫入到文件中做示例 $data = json_decode(file_get_contents( access_token.json )); if ($data- expire_time time()) { // 如果是企業(yè)號用以下URL獲取access_token // $url = https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this- appId corpsecret=$this- appSecret $url = https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential appid=$this- appId secret=$this- appSecret $res = json_decode($this- httpGet($url)); $access_token = $res- access_token; if ($access_token) { $data- expire_time = time() + 7000; $data- access_token = $access_token; $fp = fopen( access_token.json , w fwrite($fp, json_encode($data)); fclose($fp); } else { $access_token = $data- access_token; } return $access_token; } private function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res;}$jssdk = new JSSDK( 公眾號ID , 公眾號密鑰 ,$url);//按照自己的公眾號填寫$signPackage = $jssdk- GetSignPackage();$tmp=json_encode(array ( appId = $signPackage[ appId ], timestamp = $signPackage[ timestamp ], nonceStr = $signPackage[ nonceStr ], signature = $signPackage[ signature ], url = $signPackage[ url ]));$callback = $_GET[ callback echo $callback. ( .$tmp. ) exit;?
其它的按照動態(tài)頁面參數(shù)設(shè)置即可。
以上就是詳解html靜態(tài)頁面實現(xiàn)微信分享思路的示例代碼分析的詳細內(nèi)容,
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
新聞熱點
疑難解答