网站微信自定义分享代码,可以自定义分享图片标题描述(支持https)

属于自己的风景,从来不曾错过;不是自己的风景,永远只是路过。天地太大,人太渺小,不是每一道亮丽的风景都能拥有。一辈子,只求有一道令自己流连忘返,不离不弃的风景就已足够。人生的风景,是物也是人。陪自己到最后的,才是自己的风景。

在网站根目录下新建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&timestamp=$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)到此结束。这种信念是空的,只因生命在继续才盲目地产生信念。小编再次感谢大家对我们的支持!

标签: https