配置微信公众号使用js-sdk
昨天做项目才发现,同事用的别人配好的端口进行开发,根本不符合我们的预期,所以我只能自己搞。看了一下,还是蛮简单的,所以就直接弄了~
首先要配置一下公众账号
首先进入公众号配置
点击功能设置
点击设置js接口安全域名
添加自己的域名
然后上代码
<?php
//获取token的方法
function getToken($appid, $secret){
$getToken = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;
$re = file_get_contents($getToken);
$token = json_decode($re, true);
//保存token, 这里我是写入一个本地文件,也可以存数据库..
file_put_contents('./token', $token['access_token']);
return $token['access_token'];
}
//获得ticket方法
function getTicket($token){
$getTicket = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$token.'&type=jsapi';
$ticket = file_get_contents($getTicket);
$ticket = json_decode($ticket, true);
//在这里存时间戳,是因为有一个先后顺序
file_put_contents('./time', time());
file_put_contents('./ticket', $ticket['ticket']);
return $ticket['ticket'];
}
//你公众号的一些配置
$appid = '';
$secret = "";
//获得token
if(file_exists('./token')){
$time = file_get_contents('./time');
//一般token和ticket是两个小时过期,所以要检查
if(time() - $time > 7000){
$token = getToken($appid, $secret);
} else {
$token = file_get_contents('./token');
}
} else {
//设置一个时间戳
$time = time();
$token = getToken($appid, $secret);
}
//获得ticket
if(file_exists('./ticket')){
$time = file_get_contents('./time');
if(time() - $time > 7000){
$ticket = getTicket($token);
} else {
$ticket = file_get_contents('./ticket');
}
} else {
$ticket = getTicket($token);
}
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$str = 'jsapi_ticket='.$ticket.'&noncestr=pandaliu×tamp='.$time.'&url='.$url;
$sign = sha1($str);
//最终这个数据传给js-sdk
$package = array(
"appId" => $appid,
"nonceStr" => 'pandaliu',
"timestamp" => $time,
"url" => $url,
"signature" => $sign,
"rawString" => $str
);
?>
<script>
//微信sdk的配置
wx.config({
debug: false,
appId: '<?php echo $package["appId"];?>',
timestamp: <?php echo $package["timestamp"];?>,
nonceStr: '<?php echo $package["nonceStr"];?>',
signature: '<?php echo $package["signature"];?>',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'onMenuShareQQ',
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
});
//分享
wx.ready(function(){
share();
});
wx.error(function(res){
alert(JSON.stringify(res));
});
var shareWxData = {
title: '分享时的题目',
desc: '分享时的描述',
link: '分享时的链接',
//分享图片的路径
imgUrl: '',
trugger: function(res){
alert('用户点击分享朋友圈');
},
success: function(res){
alert('分享成功');
},
cancel: function(res){
alert('分享取消');
},
fail: function(res){
alert(JSON.stringify(res));
}
};
function share(){
//分享到朋友圈
wx.onMenuShareTimeline(shareWxData);
//分享给微信好友
wx.onMenuShareAppMessage(shareWxData);
//分享给QQ好友
wx.onMenuShareQQ(shareWxData);
}
</script>
以上,就是全部内容(太懒了,断断续续写了两天)