7 577 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一级栏目和二级栏目使用同一个模板,二级栏目是终极栏目,调用本栏目数...
网上关于取消会员邮箱必填的教程很多,但大都不完整。今天放出完整版本,确保全...
如今phpcms由于停止更新不能继续用下去了,我们就更加推荐帝国。那么,phpcms可...
如果对被攻击一无所知,也没有听说过CC、DDoS的概念,那被攻击以后,只能懵逼等到...
我们知道,帝国cms既可以做动态页,也可以做静态页,还可以做伪静态页。那么,他们...
在网站开发的过程中,我们可能因为这样那样的问题遇到无数的出错。有可能是代...
帝国cms拦截关键词可以在用户投稿输入指定关键词后进行拦截,并变成白屏。功...
帝国cms默认是不允许修改系统模型ID的,因为一旦修改牵扯较大。那么,如果一定...
通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...
本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...
本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...
通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...
许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...