7 601 2021-01-30 10:43:23
收藏要做帝国CMS微信分享带缩略图,前提是必须有公众号,且公众号中需要填写你的域名为安全域名才能成功。以下分享接口已采用微信开发文档中最新的接口,网上很多人使用的原接口即将失效了。
第一步:部署jssdk.php到根目录
第二步:微信公众号中设置JS安全域
公众号设置--功能设置--JS接口安全域名
第三步:增加模版变量,填入代码,appid和appsecret填入你的微信公众号相关的信息(模版变量紧挨着</body>,放在它前面):
<?
//开始微信分享代码
require'../../jssdk.php';
$appid='******';
$appsecret='******';
$jssdk=newJSSDK($appid,$appsecret);
$signPackage=$jssdk->GetSignPackage();
//结束微信分享代码
?>
<script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
<script>
//注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
//如果发现在Android不能分享自定义内容,请到官网下载最新的包覆盖安装,Android自定义分享接口需升级至6.0.2.58版本及以上。
//完整JS-SDK文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
wx.config({
debug:!1,
appId:'<?php echo$signPackage["appId"];?>',
timestamp:<?php echo$signPackage["timestamp"];?>,
nonceStr:'<?php echo$signPackage["nonceStr"];?>',
signature:'<?php echo$signPackage["signature"];?>',
jsApiList:[
"updateAppMessageShareData",
"updateTimelineShareData",
"onMenuShareWeibo",
"onMenuShareQZone"
]
});
wx.ready(function(){
//在这里调用API
wx.checkJsApi({
jsApiList:["updateAppMessageShareData",
"updateTimelineShareData",
"onMenuShareWeibo",
"onMenuShareQZone"],//需要检测的JS接口列表,所有JS接口列表见附录2,
success:function(res){
//alert(JSON.stringify(res));
if(res.errMsg!='checkJsApi:ok'){
alert('请升级您的微信版本');
return;
}
}
});
//分享Demo
//获取“分享给朋友”按钮点击状态及自定义分享内容接口
wx.updateAppMessageShareData({
title:'<?=$navinfor[title]?>',//分享标题
desc:'<?=$navinfor[smalltext]?>',//分享描述
link:'http://www.xxx.com<?=$navinfor[titleurl]?>',//分享链接
imgUrl:'<?=$navinfor[titlepic]?>',//分享图标
success:function(){
//设置成功
}
});
//获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
wx.updateTimelineShareData({
title:'<?=$navinfor[title]?>',//分享标题
link:'http://www.xxx.com<?=$navinfor[titleurl]?>',//分享链接
imgUrl:'<?=$navinfor[titlepic]?>',//分享图标
success:function(){
//设置成功
}
});
wx.onMenuShareWeibo({
title:'<?=$navinfor[title]?>',//分享标题
desc:'<?=$navinfor[smalltext]?>',//分享描述
link:'http://www.xxx.com<?=$navinfor[titleurl]?>',//分享链接
imgUrl:'<?=$navinfor[titlepic]?>',//分享图标
success:function(){
//用户确认分享后执行的回调函数
},
cancel:function(){
//用户取消分享后执行的回调函数
}
});
});
</script>
帝国CMS微信分享jssdk.php代码
<?php
classJSSDK{
private$appId;
private$appSecret;
publicfunction__construct($appId,$appSecret){
$this->appId=$appId;
$this->appSecret=$appSecret;
}
publicfunctiongetSignPackage(){
$jsapiTicket=$this->getJsApiTicket();
$url="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$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="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="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_URL,$url);
$res=curl_exec($curl);
curl_close($curl);
return$res;
}
}
?>
本文地址:https://xzo.com.cn/develop/empire/200.html
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用。
当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。
网上关于取消会员邮箱必填的教程很多,但大都不完整。今天放出完整版本,确保全...
一些颜色比较丰富的站点对模板的样式有要求,例如隔行变色:一行默认色,一行红色...
网站留言板是用户留存的重要环节,但帝国cms自带的留言板功能十分单一,大多数...
帝国cms网站链接域名出现了2次是什么原因,要怎么解决?这个问题往往出现在用户...
帝国cms生成的静态页面,大多是在gethtml()函数下实现代码压缩,但自定义页面、...
对于资深一点的站长或者SEO来说,一定会经常听到动态、静态、伪静态这类的词...
如果用栏目搭建帝国cms站点,伪静态规则该怎么写呢?如果直接作用于根目录,可能...
视频文件默认会被pc浏览器直接打开,此时download属性也同样无效。那么,要怎样...
百度开放了系列AI功能api如图像上色、图像去雾、图像修复、无损放大、清晰...
通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...
下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...
通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...
帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...
本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...