属于自己的风景,从来不曾错过;不是自己的风景,永远只是路过。天地太大,人太渺小,不是每一道亮丽的风景都能拥有。一辈子,只求有一道令自己流连忘返,不离不弃的风景就已足够。人生的风景,是物也是人。陪自己到最后的,才是自己的风景。
在网站根目录下新建js目录,放入以下2个文件
js/jssdk.php js/share.js
jssdk.php 代码如下
<?php $url=$_GET['url'];//2017-06-27 classJSSDK{ private$appId; private$appSecret; private$url;//2017-06-27 publicfunction__construct($appId,$appSecret,$url){ $this->appId=$appId; $this->appSecret=$appSecret; $this->url=$url;//2017-06-27 } publicfunctiongetSignPackage(){ $jsapiTicket=$this->getJsApiTicket(); //注意URL一定要动态获取,不能hardcode. $protocol=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off'|| $_SERVER['SERVER_PORT']==443)?"https://":"http://"; //$url="$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";//2017-06-27 $url=$this->url;//2017-06-27 $timestamp=time(); $nonceStr=$this->createNonceStr(); //这里参数的顺序要按照key值ASCII码升序排序 $string="jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; $signature=sha1($string); $signPackage=array( "appId"=>$this->appId, "nonceStr"=>$nonceStr, "timestamp"=>$timestamp, "url"=>$url, "signature"=>$signature, "rawString"=>$string ); return$signPackage; } privatefunctioncreateNonceStr($length=16){ $chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str=""; for($i=0;$i<$length;$i++){ $str.=substr($chars,mt_rand(0,strlen($chars)-1),1); } return$str; } privatefunctiongetJsApiTicket(){ //jsapi_ticket应该全局存储与更新,以下代码以写入到文件中做示例 $data=json_decode(file_get_contents("jsapi_ticket.json")); if($data->expire_time<time()){ $accessToken=$this->getAccessToken(); //如果是企业号用以下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; } privatefunctiongetAccessToken(){ //access_token应该全局存储与更新,以下代码以写入到文件中做示例 $data=json_decode(file_get_contents("access_token.json")); if($data->expire_time<time()){ //如果是企业号用以下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; } privatefunctionhttpGet($url){ $curl=curl_init(); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_TIMEOUT,500); curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,true); curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,true);//https curl_setopt($curl,CURLOPT_URL,$url); $res=curl_exec($curl); curl_close($curl); return$res; } } $jssdk=newJSSDK("AAPID","appSecret",$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; ?>
share.js代码如下
url=location.href; $.ajax({ type:"get", url:"../js/jssdk.php?url="+url, 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:['chackJsApi','onMenuShareTimeline','onMenuShareAppMessage', 'onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] }); }, error:function(data){ alert("连接失败!"); } }); wx.ready(function(){ varshareData={ title:title, desc:desc, link:url, imgUrl:img, success:function(res){ //分享成功 }, cancel:function(res){ alert('已取消分享'); } }; wx.onMenuShareAppMessage(shareData); wx.onMenuShareTimeline(shareData); wx.onMenuShareQQ(shareData); wx.onMenuShareWeibo(shareData); wx.onMenuShareQZone(shareData); });
部署方式 页面底部添加如下代码
<scriptsrc="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <scriptsrc="https://你的域名/js/share.js"></script> <script> varurl='你的域名';//用户要分享的网址 vartitle='您的标题';//分享的标题 varimg='您的图片地址';//分享的图片 vardesc='您的描述信息';//分享的描述信息 </script>
本文网站微信自定义分享代码,可以自定义分享图片标题描述(支持https)到此结束。这种信念是空的,只因生命在继续才盲目地产生信念。小编再次感谢大家对我们的支持!